A numerical evaluator for the generalized hypergeometric function for complex arguments with large magnitudes using a direct summation of the Gauss series.
pFq isdefined by (borrowed from Maple):
pFq = sum(z^k / k! * product(pochhammer(n[i], k), i=1..p) / product(pochhammer(d[j], k), j=1..q), k=0..infinity )
The desired accuracy (number of digits) can be specified as a parameter.
This function is a translation from the original fortran77 source code written by W. F. Perger from the Michigan Technological University.
Ben Barrowes (2020). Generalized Hypergeometric Function (https://www.mathworks.com/matlabcentral/fileexchange/5616-generalized-hypergeometric-function), MATLAB Central File Exchange. Retrieved .
It would be nice if the z portion of the input could be a vector. Presently (genHyper_1.2), z must be a scalar, at least for the native Matlab version.
how to download it please?
In general, this function works just fine. However, a word of warning. If you plan on executing the function more than 8,192 times in any given MATLAB session, you will need to either a) run MATLAB -nojvm from Cygwin, or comment out ALL of the write statements in the Fortran code. Evidently all of these write statements fill up some kind of buffer in the desktop implementation that is bypassed when you run MATLAB from Cygwin. This behavior is present in 2007a Student Version and 2008a full version. I compiled the code using MINGW and the GNUMEX kit.
Other issues include the STOP statements in the code that will cause MATLAB to exit erroneously. I had to replace all of the STOP statements with the appropriate MATLAB MEX error statement.
it is fair software and fullfill my requirement to a great extent
It is good. But do you do about Meijer G function? Could you help me? Thank
Very good code!
Why the program does not operate with Matlab 6.5 ? It occurs some errors as follow--- ??? Error: File: D:\MATLAB6p5p1\stbc\genHyper.m Line: 332 Column: 15
Expected a variable, function, or constant, found ")".I think it may be the "bits()", I don't know how to deal with it.
Fixed backward compatibility problem.
Updating so works with MATLAB < 7.0.
Also including a mex function which does the same thing but much faster.
Inspired: Generation of Random Variates