Doxygen Source Code Documentation
Main Page Alphabetical List Data Structures File List Data Fields Globals Search
cdf_71.c
Go to the documentation of this file.00001 #include "cdflib.h"
00002 double spmpar(int *i)
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030 {
00031 static int K1 = 4;
00032 static int K2 = 8;
00033 static int K3 = 9;
00034 static int K4 = 10;
00035 static double spmpar,b,binv,bm1,one,w,z;
00036 static int emax,emin,ibeta,m;
00037
00038
00039
00040
00041 if(*i > 1) goto S10;
00042 b = ipmpar(&K1);
00043 m = ipmpar(&K2);
00044 spmpar = pow(b,(double)(1-m));
00045 return spmpar;
00046 S10:
00047 if(*i > 2) goto S20;
00048 b = ipmpar(&K1);
00049 emin = ipmpar(&K3);
00050 one = 1.0;
00051 binv = one/b;
00052 w = pow(b,(double)(emin+2));
00053 spmpar = w*binv*binv*binv;
00054 return spmpar;
00055 S20:
00056 ibeta = ipmpar(&K1);
00057 m = ipmpar(&K2);
00058 emax = ipmpar(&K4);
00059 b = ibeta;
00060 bm1 = ibeta-1;
00061 one = 1.0;
00062 z = pow(b,(double)(m-1));
00063 w = ((z-one)*b+bm1)/(b*z);
00064 z = pow(b,(double)(emax-2));
00065 spmpar = w*z*b*b;
00066 return spmpar;
00067 }