GNU Octave  4.4.1
A high-level interpreted language, primarily intended for numerical computations, mostly compatible with Matlab
lo-specfun.h
Go to the documentation of this file.
1 /*
2 
3 Copyright (C) 1996-2018 John W. Eaton
4 Copyright (C) 2010 VZLU Prague
5 
6 This file is part of Octave.
7 
8 Octave is free software: you can redistribute it and/or modify it
9 under the terms of the GNU General Public License as published by
10 the Free Software Foundation, either version 3 of the License, or
11 (at your option) any later version.
12 
13 Octave is distributed in the hope that it will be useful, but
14 WITHOUT ANY WARRANTY; without even the implied warranty of
15 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16 GNU General Public License for more details.
17 
18 You should have received a copy of the GNU General Public License
19 along with Octave; see the file COPYING. If not, see
20 <https://www.gnu.org/licenses/>.
21 
22 */
23 
24 #if ! defined (octave_lo_specfun_h)
25 #define octave_lo_specfun_h 1
26 
27 #include "octave-config.h"
28 
29 #include "Array.h"
30 #include "oct-cmplx.h"
31 
33 class ComplexMatrix;
34 class ComplexNDArray;
36 class FloatComplexMatrix;
38 class FloatMatrix;
39 class FloatNDArray;
40 class FloatRowVector;
41 class Matrix;
42 class NDArray;
43 class RowVector;
44 
45 namespace octave
46 {
47  namespace math
48  {
49  inline double acosh (double x) { return std::acosh (x); }
50  inline float acosh (float x) { return std::acoshf (x); }
51  inline Complex acosh (const Complex& x) { return std::acosh (x); }
52  inline FloatComplex acosh (const FloatComplex& x) { return std::acosh (x); }
53 
54  extern OCTAVE_API Complex airy (const Complex& z, bool deriv, bool scaled,
56  extern OCTAVE_API ComplexMatrix airy (const ComplexMatrix& z, bool deriv,
57  bool scaled, Array<octave_idx_type>& ierr);
58  extern OCTAVE_API ComplexNDArray airy (const ComplexNDArray& z, bool deriv,
59  bool scaled, Array<octave_idx_type>& ierr);
60  extern OCTAVE_API FloatComplex airy (const FloatComplex& z, bool deriv,
61  bool scaled, octave_idx_type& ierr);
62  extern OCTAVE_API FloatComplexMatrix airy (const FloatComplexMatrix& z,
63  bool deriv, bool scaled, Array<octave_idx_type>& ierr);
64  extern OCTAVE_API FloatComplexNDArray airy (const FloatComplexNDArray& z,
65  bool deriv, bool scaled, Array<octave_idx_type>& ierr);
66 
67  inline double asinh (double x) { return std::asinh (x); }
68  inline float asinh (float x) { return std::asinhf (x); }
69  inline Complex asinh (const Complex& x) { return std::asinh (x); }
70  inline FloatComplex asinh (const FloatComplex& x) { return std::asinh (x); }
71 
72  inline double atanh (double x) { return std::atanh (x); }
73  inline float atanh (float x) { return std::atanhf (x); }
74  inline Complex atanh (const Complex& x) { return std::atanh (x); }
75  inline FloatComplex atanh (const FloatComplex& x) { return std::atanh (x); }
76 
77  extern OCTAVE_API Complex besselj (double alpha, const Complex& x, bool scaled,
79  extern OCTAVE_API Complex bessely (double alpha, const Complex& x, bool scaled,
81  extern OCTAVE_API Complex besseli (double alpha, const Complex& x, bool scaled,
83  extern OCTAVE_API Complex besselk (double alpha, const Complex& x, bool scaled,
85  extern OCTAVE_API Complex besselh1 (double alpha, const Complex& x, bool scaled,
87  extern OCTAVE_API Complex besselh2 (double alpha, const Complex& x, bool scaled,
89 
90  extern OCTAVE_API ComplexMatrix besselj (double alpha, const ComplexMatrix& x,
91  bool scaled, Array<octave_idx_type>& ierr);
92  extern OCTAVE_API ComplexMatrix bessely (double alpha, const ComplexMatrix& x,
93  bool scaled, Array<octave_idx_type>& ierr);
94  extern OCTAVE_API ComplexMatrix besseli (double alpha, const ComplexMatrix& x,
95  bool scaled, Array<octave_idx_type>& ierr);
96  extern OCTAVE_API ComplexMatrix besselk (double alpha, const ComplexMatrix& x,
97  bool scaled, Array<octave_idx_type>& ierr);
98  extern OCTAVE_API ComplexMatrix besselh1 (double alpha, const ComplexMatrix& x,
99  bool scaled, Array<octave_idx_type>& ierr);
100  extern OCTAVE_API ComplexMatrix besselh2 (double alpha, const ComplexMatrix& x,
101  bool scaled, Array<octave_idx_type>& ierr);
102 
103  extern OCTAVE_API ComplexMatrix besselj (const Matrix& alpha, const Complex& x,
104  bool scaled, Array<octave_idx_type>& ierr);
105  extern OCTAVE_API ComplexMatrix bessely (const Matrix& alpha, const Complex& x,
106  bool scaled, Array<octave_idx_type>& ierr);
107  extern OCTAVE_API ComplexMatrix besseli (const Matrix& alpha, const Complex& x,
108  bool scaled, Array<octave_idx_type>& ierr);
109  extern OCTAVE_API ComplexMatrix besselk (const Matrix& alpha, const Complex& x,
110  bool scaled, Array<octave_idx_type>& ierr);
111  extern OCTAVE_API ComplexMatrix besselh1 (const Matrix& alpha, const Complex& x,
112  bool scaled, Array<octave_idx_type>& ierr);
113  extern OCTAVE_API ComplexMatrix besselh2 (const Matrix& alpha, const Complex& x,
114  bool scaled, Array<octave_idx_type>& ierr);
115 
116  extern OCTAVE_API ComplexMatrix besselj (const Matrix& alpha,
117  const ComplexMatrix& x, bool scaled, Array<octave_idx_type>& ierr);
118  extern OCTAVE_API ComplexMatrix bessely (const Matrix& alpha,
119  const ComplexMatrix& x, bool scaled, Array<octave_idx_type>& ierr);
120  extern OCTAVE_API ComplexMatrix besseli (const Matrix& alpha,
121  const ComplexMatrix& x, bool scaled, Array<octave_idx_type>& ierr);
122  extern OCTAVE_API ComplexMatrix besselk (const Matrix& alpha,
123  const ComplexMatrix& x, bool scaled, Array<octave_idx_type>& ierr);
124  extern OCTAVE_API ComplexMatrix besselh1 (const Matrix& alpha,
125  const ComplexMatrix& x, bool scaled, Array<octave_idx_type>& ierr);
126  extern OCTAVE_API ComplexMatrix besselh2 (const Matrix& alpha,
127  const ComplexMatrix& x, bool scaled, Array<octave_idx_type>& ierr);
128 
129  extern OCTAVE_API ComplexNDArray besselj (double alpha, const ComplexNDArray& x,
130  bool scaled, Array<octave_idx_type>& ierr);
131  extern OCTAVE_API ComplexNDArray bessely (double alpha, const ComplexNDArray& x,
132  bool scaled, Array<octave_idx_type>& ierr);
133  extern OCTAVE_API ComplexNDArray besseli (double alpha, const ComplexNDArray& x,
134  bool scaled, Array<octave_idx_type>& ierr);
135  extern OCTAVE_API ComplexNDArray besselk (double alpha, const ComplexNDArray& x,
136  bool scaled, Array<octave_idx_type>& ierr);
137  extern OCTAVE_API ComplexNDArray besselh1 (double alpha,
138  const ComplexNDArray& x, bool scaled, Array<octave_idx_type>& ierr);
139  extern OCTAVE_API ComplexNDArray besselh2 (double alpha,
140  const ComplexNDArray& x, bool scaled, Array<octave_idx_type>& ierr);
141 
142  extern OCTAVE_API ComplexNDArray besselj (const NDArray& alpha,
143  const Complex& x, bool scaled, Array<octave_idx_type>& ierr);
144  extern OCTAVE_API ComplexNDArray bessely (const NDArray& alpha,
145  const Complex& x, bool scaled, Array<octave_idx_type>& ierr);
146  extern OCTAVE_API ComplexNDArray besseli (const NDArray& alpha,
147  const Complex& x, bool scaled, Array<octave_idx_type>& ierr);
148  extern OCTAVE_API ComplexNDArray besselk (const NDArray& alpha,
149  const Complex& x, bool scaled, Array<octave_idx_type>& ierr);
150  extern OCTAVE_API ComplexNDArray besselh1 (const NDArray& alpha,
151  const Complex& x, bool scaled, Array<octave_idx_type>& ierr);
152  extern OCTAVE_API ComplexNDArray besselh2 (const NDArray& alpha,
153  const Complex& x, bool scaled, Array<octave_idx_type>& ierr);
154 
155  extern OCTAVE_API ComplexNDArray besselj (const NDArray& alpha,
156  const ComplexNDArray& x, bool scaled, Array<octave_idx_type>& ierr);
157  extern OCTAVE_API ComplexNDArray bessely (const NDArray& alpha,
158  const ComplexNDArray& x, bool scaled, Array<octave_idx_type>& ierr);
159  extern OCTAVE_API ComplexNDArray besseli (const NDArray& alpha,
160  const ComplexNDArray& x, bool scaled, Array<octave_idx_type>& ierr);
161  extern OCTAVE_API ComplexNDArray besselk (const NDArray& alpha,
162  const ComplexNDArray& x, bool scaled, Array<octave_idx_type>& ierr);
163  extern OCTAVE_API ComplexNDArray besselh1 (const NDArray& alpha,
164  const ComplexNDArray& x, bool scaled, Array<octave_idx_type>& ierr);
165  extern OCTAVE_API ComplexNDArray besselh2 (const NDArray& alpha,
166  const ComplexNDArray& x, bool scaled, Array<octave_idx_type>& ierr);
167 
168  extern OCTAVE_API ComplexMatrix besselj (const RowVector& alpha,
169  const ComplexColumnVector& x, bool scaled, Array<octave_idx_type>& ierr);
170  extern OCTAVE_API ComplexMatrix bessely (const RowVector& alpha,
171  const ComplexColumnVector& x, bool scaled, Array<octave_idx_type>& ierr);
172  extern OCTAVE_API ComplexMatrix besseli (const RowVector& alpha,
173  const ComplexColumnVector& x, bool scaled, Array<octave_idx_type>& ierr);
174  extern OCTAVE_API ComplexMatrix besselk (const RowVector& alpha,
175  const ComplexColumnVector& x, bool scaled, Array<octave_idx_type>& ierr);
176  extern OCTAVE_API ComplexMatrix besselh1 (const RowVector& alpha,
177  const ComplexColumnVector& x, bool scaled, Array<octave_idx_type>& ierr);
178  extern OCTAVE_API ComplexMatrix besselh2 (const RowVector& alpha,
179  const ComplexColumnVector& x, bool scaled, Array<octave_idx_type>& ierr);
180 
181  extern OCTAVE_API FloatComplex besselj (float alpha, const FloatComplex& x,
182  bool scaled, octave_idx_type& ierr);
183  extern OCTAVE_API FloatComplex bessely (float alpha, const FloatComplex& x,
184  bool scaled, octave_idx_type& ierr);
185  extern OCTAVE_API FloatComplex besseli (float alpha, const FloatComplex& x,
186  bool scaled, octave_idx_type& ierr);
187  extern OCTAVE_API FloatComplex besselk (float alpha, const FloatComplex& x,
188  bool scaled, octave_idx_type& ierr);
189  extern OCTAVE_API FloatComplex besselh1 (float alpha, const FloatComplex& x,
190  bool scaled, octave_idx_type& ierr);
191  extern OCTAVE_API FloatComplex besselh2 (float alpha, const FloatComplex& x,
192  bool scaled, octave_idx_type& ierr);
193 
194  extern OCTAVE_API FloatComplexMatrix besselj (float alpha,
195  const FloatComplexMatrix& x, bool scaled, Array<octave_idx_type>& ierr);
196  extern OCTAVE_API FloatComplexMatrix bessely (float alpha,
197  const FloatComplexMatrix& x, bool scaled, Array<octave_idx_type>& ierr);
198  extern OCTAVE_API FloatComplexMatrix besseli (float alpha,
199  const FloatComplexMatrix& x, bool scaled, Array<octave_idx_type>& ierr);
200  extern OCTAVE_API FloatComplexMatrix besselk (float alpha,
201  const FloatComplexMatrix& x, bool scaled, Array<octave_idx_type>& ierr);
202  extern OCTAVE_API FloatComplexMatrix besselh1 (float alpha,
203  const FloatComplexMatrix& x, bool scaled, Array<octave_idx_type>& ierr);
204  extern OCTAVE_API FloatComplexMatrix besselh2 (float alpha,
205  const FloatComplexMatrix& x, bool scaled, Array<octave_idx_type>& ierr);
206 
207  extern OCTAVE_API FloatComplexMatrix besselj (const FloatMatrix& alpha,
208  const FloatComplex& x, bool scaled, Array<octave_idx_type>& ierr);
209  extern OCTAVE_API FloatComplexMatrix bessely (const FloatMatrix& alpha,
210  const FloatComplex& x, bool scaled, Array<octave_idx_type>& ierr);
211  extern OCTAVE_API FloatComplexMatrix besseli (const FloatMatrix& alpha,
212  const FloatComplex& x, bool scaled, Array<octave_idx_type>& ierr);
213  extern OCTAVE_API FloatComplexMatrix besselk (const FloatMatrix& alpha,
214  const FloatComplex& x, bool scaled, Array<octave_idx_type>& ierr);
215  extern OCTAVE_API FloatComplexMatrix besselh1 (const FloatMatrix& alpha,
216  const FloatComplex& x, bool scaled, Array<octave_idx_type>& ierr);
217  extern OCTAVE_API FloatComplexMatrix besselh2 (const FloatMatrix& alpha,
218  const FloatComplex& x, bool scaled, Array<octave_idx_type>& ierr);
219 
220  extern OCTAVE_API FloatComplexMatrix besselj (const FloatMatrix& alpha,
221  const FloatComplexMatrix& x, bool scaled, Array<octave_idx_type>& ierr);
222  extern OCTAVE_API FloatComplexMatrix bessely (const FloatMatrix& alpha,
223  const FloatComplexMatrix& x, bool scaled, Array<octave_idx_type>& ierr);
224  extern OCTAVE_API FloatComplexMatrix besseli (const FloatMatrix& alpha,
225  const FloatComplexMatrix& x, bool scaled, Array<octave_idx_type>& ierr);
226  extern OCTAVE_API FloatComplexMatrix besselk (const FloatMatrix& alpha,
227  const FloatComplexMatrix& x, bool scaled, Array<octave_idx_type>& ierr);
228  extern OCTAVE_API FloatComplexMatrix besselh1 (const FloatMatrix& alpha,
229  const FloatComplexMatrix& x, bool scaled, Array<octave_idx_type>& ierr);
230  extern OCTAVE_API FloatComplexMatrix besselh2 (const FloatMatrix& alpha,
231  const FloatComplexMatrix& x, bool scaled, Array<octave_idx_type>& ierr);
232 
233  extern OCTAVE_API FloatComplexNDArray besselj (float alpha,
234  const FloatComplexNDArray& x, bool scaled, Array<octave_idx_type>& ierr);
235  extern OCTAVE_API FloatComplexNDArray bessely (float alpha,
236  const FloatComplexNDArray& x, bool scaled, Array<octave_idx_type>& ierr);
237  extern OCTAVE_API FloatComplexNDArray besseli (float alpha,
238  const FloatComplexNDArray& x, bool scaled, Array<octave_idx_type>& ierr);
239  extern OCTAVE_API FloatComplexNDArray besselk (float alpha,
240  const FloatComplexNDArray& x, bool scaled, Array<octave_idx_type>& ierr);
241  extern OCTAVE_API FloatComplexNDArray besselh1 (float alpha,
242  const FloatComplexNDArray& x, bool scaled, Array<octave_idx_type>& ierr);
243  extern OCTAVE_API FloatComplexNDArray besselh2 (float alpha,
244  const FloatComplexNDArray& x, bool scaled, Array<octave_idx_type>& ierr);
245 
246  extern OCTAVE_API FloatComplexNDArray besselj (const FloatNDArray& alpha,
247  const FloatComplex& x, bool scaled, Array<octave_idx_type>& ierr);
248  extern OCTAVE_API FloatComplexNDArray bessely (const FloatNDArray& alpha,
249  const FloatComplex& x, bool scaled, Array<octave_idx_type>& ierr);
250  extern OCTAVE_API FloatComplexNDArray besseli (const FloatNDArray& alpha,
251  const FloatComplex& x, bool scaled, Array<octave_idx_type>& ierr);
252  extern OCTAVE_API FloatComplexNDArray besselk (const FloatNDArray& alpha,
253  const FloatComplex& x, bool scaled, Array<octave_idx_type>& ierr);
254  extern OCTAVE_API FloatComplexNDArray besselh1 (const FloatNDArray& alpha,
255  const FloatComplex& x, bool scaled, Array<octave_idx_type>& ierr);
256  extern OCTAVE_API FloatComplexNDArray besselh2 (const FloatNDArray& alpha,
257  const FloatComplex& x, bool scaled, Array<octave_idx_type>& ierr);
258 
259  extern OCTAVE_API FloatComplexNDArray besselj (const FloatNDArray& alpha,
260  const FloatComplexNDArray& x, bool scaled, Array<octave_idx_type>& ierr);
261  extern OCTAVE_API FloatComplexNDArray bessely (const FloatNDArray& alpha,
262  const FloatComplexNDArray& x, bool scaled, Array<octave_idx_type>& ierr);
263  extern OCTAVE_API FloatComplexNDArray besseli (const FloatNDArray& alpha,
264  const FloatComplexNDArray& x, bool scaled, Array<octave_idx_type>& ierr);
265  extern OCTAVE_API FloatComplexNDArray besselk (const FloatNDArray& alpha,
266  const FloatComplexNDArray& x, bool scaled, Array<octave_idx_type>& ierr);
267  extern OCTAVE_API FloatComplexNDArray besselh1 (const FloatNDArray& alpha,
268  const FloatComplexNDArray& x, bool scaled, Array<octave_idx_type>& ierr);
269  extern OCTAVE_API FloatComplexNDArray besselh2 (const FloatNDArray& alpha,
270  const FloatComplexNDArray& x, bool scaled, Array<octave_idx_type>& ierr);
271 
272  extern OCTAVE_API FloatComplexMatrix besselj (const FloatRowVector& alpha,
273  const FloatComplexColumnVector& x, bool scaled, Array<octave_idx_type>& ierr);
274  extern OCTAVE_API FloatComplexMatrix bessely (const FloatRowVector& alpha,
275  const FloatComplexColumnVector& x, bool scaled, Array<octave_idx_type>& ierr);
276  extern OCTAVE_API FloatComplexMatrix besseli (const FloatRowVector& alpha,
277  const FloatComplexColumnVector& x, bool scaled, Array<octave_idx_type>& ierr);
278  extern OCTAVE_API FloatComplexMatrix besselk (const FloatRowVector& alpha,
279  const FloatComplexColumnVector& x, bool scaled, Array<octave_idx_type>& ierr);
280  extern OCTAVE_API FloatComplexMatrix besselh1 (const FloatRowVector& alpha,
281  const FloatComplexColumnVector& x, bool scaled, Array<octave_idx_type>& ierr);
282  extern OCTAVE_API FloatComplexMatrix besselh2 (const FloatRowVector& alpha,
283  const FloatComplexColumnVector& x, bool scaled, Array<octave_idx_type>& ierr);
284 
285  extern OCTAVE_API Complex biry (const Complex& z, bool deriv, bool scaled,
287  extern OCTAVE_API ComplexMatrix biry (const ComplexMatrix& z, bool deriv,
288  bool scaled, Array<octave_idx_type>& ierr);
289  extern OCTAVE_API ComplexNDArray biry (const ComplexNDArray& z, bool deriv,
290  bool scaled, Array<octave_idx_type>& ierr);
291  extern OCTAVE_API FloatComplex biry (const FloatComplex& z, bool deriv,
292  bool scaled, octave_idx_type& ierr);
293  extern OCTAVE_API FloatComplexMatrix biry (const FloatComplexMatrix& z,
294  bool deriv, bool scaled, Array<octave_idx_type>& ierr);
295  extern OCTAVE_API FloatComplexNDArray biry (const FloatComplexNDArray& z,
296  bool deriv, bool scaled, Array<octave_idx_type>& ierr);
297 
298  inline double cbrt (double x) { return std::cbrt (x); }
299  inline float cbrt (float x) { return std::cbrtf (x); }
300 
301  extern OCTAVE_API double dawson (double x);
302  extern OCTAVE_API float dawson (float x);
303  extern OCTAVE_API Complex dawson (const Complex& x);
304  extern OCTAVE_API FloatComplex dawson (const FloatComplex& x);
305 
306  extern OCTAVE_API void ellipj (double u, double m, double& sn, double& cn,
307  double& dn, double& err);
308  extern OCTAVE_API void ellipj (const Complex& u, double m, Complex& sn,
309  Complex& cn, Complex& dn, double& err);
310 
311  inline double erf (double x) { return std::erf (x); }
312  inline float erf (float x) { return std::erff (x); }
313  extern OCTAVE_API Complex erf (const Complex& x);
314  extern OCTAVE_API FloatComplex erf (const FloatComplex& x);
315 
316  inline double erfc (double x) { return std::erfc (x); }
317  inline float erfc (float x) { return std::erfcf (x); }
318  extern OCTAVE_API Complex erfc (const Complex& x);
319  extern OCTAVE_API FloatComplex erfc (const FloatComplex& x);
320 
321  extern OCTAVE_API double erfcinv (double x);
322  extern OCTAVE_API float erfcinv (float x);
323 
324  extern OCTAVE_API double erfcx (double x);
325  extern OCTAVE_API float erfcx (float x);
326  extern OCTAVE_API Complex erfcx (const Complex& x);
327  extern OCTAVE_API FloatComplex erfcx (const FloatComplex& x);
328 
329  extern OCTAVE_API double erfi (double x);
330  extern OCTAVE_API float erfi (float x);
331  extern OCTAVE_API Complex erfi (const Complex& x);
332  extern OCTAVE_API FloatComplex erfi (const FloatComplex& x);
333 
334  extern OCTAVE_API double erfinv (double x);
335  extern OCTAVE_API float erfinv (float x);
336 
337  inline double expm1 (double x) { return std::expm1 (x); }
338  inline float expm1 (float x) { return std::expm1f (x); }
339  extern OCTAVE_API Complex expm1 (const Complex& x);
340  extern OCTAVE_API FloatComplex expm1 (const FloatComplex& x);
341 
342  extern OCTAVE_API double gamma (double x);
343  extern OCTAVE_API float gamma (float x);
344 
345  extern OCTAVE_API double gammainc (double x, double a, bool& err);
346  inline double gammainc (double x, double a)
347  {
348  bool err;
349  return gammainc (x, a, err);
350  }
351 
352  extern OCTAVE_API Matrix gammainc (double x, const Matrix& a);
353  extern OCTAVE_API Matrix gammainc (const Matrix& x, double a);
354  extern OCTAVE_API Matrix gammainc (const Matrix& x, const Matrix& a);
355 
356  extern OCTAVE_API NDArray gammainc (double x, const NDArray& a);
357  extern OCTAVE_API NDArray gammainc (const NDArray& x, double a);
358  extern OCTAVE_API NDArray gammainc (const NDArray& x, const NDArray& a);
359 
360  extern OCTAVE_API float gammainc (float x, float a, bool& err);
361  inline float gammainc (float x, float a)
362  {
363  bool err;
364  return gammainc (x, a, err);
365  }
366 
367  extern OCTAVE_API FloatMatrix gammainc (float x, const FloatMatrix& a);
368  extern OCTAVE_API FloatMatrix gammainc (const FloatMatrix& x, float a);
369  extern OCTAVE_API FloatMatrix gammainc (const FloatMatrix& x,
370  const FloatMatrix& a);
371 
372  extern OCTAVE_API FloatNDArray gammainc (float x, const FloatNDArray& a);
373  extern OCTAVE_API FloatNDArray gammainc (const FloatNDArray& x, float a);
374  extern OCTAVE_API FloatNDArray gammainc (const FloatNDArray& x,
375  const FloatNDArray& a);
376 
377  inline double lgamma (double x) { return std::lgamma (x); }
378  inline float lgamma (float x) { return std::lgammaf (x); }
379 
380  inline double log1p (double x) { return std::log1p (x); }
381  inline float log1p (float x) { return std::log1pf (x); }
382  extern OCTAVE_API Complex log1p (const Complex& x);
383  extern OCTAVE_API FloatComplex log1p (const FloatComplex& x);
384 
385  extern OCTAVE_API double psi (double x);
386  extern OCTAVE_API float psi (float x);
387  extern OCTAVE_API Complex psi (const Complex& x);
388  extern OCTAVE_API FloatComplex psi (const FloatComplex& x);
389  extern OCTAVE_API double psi (octave_idx_type n, double z);
390  extern OCTAVE_API float psi (octave_idx_type n, float z);
391 
392  extern OCTAVE_API Complex rc_lgamma (double x);
393  extern OCTAVE_API FloatComplex rc_lgamma (float x);
394 
395  extern OCTAVE_API Complex rc_log1p (double x);
396  extern OCTAVE_API FloatComplex rc_log1p (float x);
397  }
398 }
399 
400 #if defined (OCTAVE_USE_DEPRECATED_FUNCTIONS)
401 
402 OCTAVE_DEPRECATED (4.2, "use 'octave::math::acosh' instead")
403 inline double xacosh (double x) { return octave::math::acosh (x); }
404 OCTAVE_DEPRECATED (4.2, "use 'octave::math::acosh' instead")
405 inline float xacosh (float x) { return octave::math::acosh (x); }
406 OCTAVE_DEPRECATED (4.2, "use 'octave::math::acosh' instead")
407 inline Complex xacosh (const Complex& x) { return octave::math::acosh (x); }
408 OCTAVE_DEPRECATED (4.2, "use 'octave::math::acosh' instead")
409 inline FloatComplex xacosh (const FloatComplex& x) { return octave::math::acosh (x); }
410 
411 OCTAVE_DEPRECATED (4.2, "use 'octave::math::asinh' instead")
412 inline double xasinh (double x) { return octave::math::asinh (x); }
413 OCTAVE_DEPRECATED (4.2, "use 'octave::math::asinh' instead")
414 inline float xasinh (float x) { return octave::math::asinh (x); }
415 OCTAVE_DEPRECATED (4.2, "use 'octave::math::asinh' instead")
416 inline Complex xasinh (const Complex& x) { return octave::math::asinh (x); }
417 OCTAVE_DEPRECATED (4.2, "use 'octave::math::asinh' instead")
418 inline FloatComplex xasinh (const FloatComplex& x) { return octave::math::asinh (x); }
419 
420 OCTAVE_DEPRECATED (4.2, "use 'octave::math::atanh' instead")
421 inline double xatanh (double x) { return octave::math::atanh (x); }
422 OCTAVE_DEPRECATED (4.2, "use 'octave::math::atanh' instead")
423 inline float xatanh (float x) { return octave::math::atanh (x); }
424 OCTAVE_DEPRECATED (4.2, "use 'octave::math::atanh' instead")
425 inline Complex xatanh (const Complex& x) { return octave::math::atanh (x); }
426 OCTAVE_DEPRECATED (4.2, "use 'octave::math::atanh' instead")
427 inline FloatComplex xatanh (const FloatComplex& x) { return octave::math::atanh (x); }
428 
429 OCTAVE_DEPRECATED (4.2, "use 'octave::math::erf' instead")
430 inline double xerf (double x) { return octave::math::erf (x); }
431 OCTAVE_DEPRECATED (4.2, "use 'octave::math::erf' instead")
432 inline float xerf (float x) { return octave::math::erf (x); }
433 OCTAVE_DEPRECATED (4.2, "use 'octave::math::erf' instead")
434 inline Complex xerf (const Complex& x) { return octave::math::erf (x); }
435 OCTAVE_DEPRECATED (4.2, "use 'octave::math::erf' instead")
436 inline FloatComplex xerf (const FloatComplex& x) { return octave::math::erf (x); }
437 
438 OCTAVE_DEPRECATED (4.2, "use 'octave::math::erfc' instead")
439 inline double xerfc (double x) { return octave::math::erfc (x); }
440 OCTAVE_DEPRECATED (4.2, "use 'octave::math::erfc' instead")
441 inline float xerfc (float x) { return octave::math::erfc (x); }
442 OCTAVE_DEPRECATED (4.2, "use 'octave::math::erfc' instead")
443 inline Complex xerfc (const Complex& x) { return octave::math::erfc (x); }
444 OCTAVE_DEPRECATED (4.2, "use 'octave::math::erfc' instead")
445 inline FloatComplex xerfc (const FloatComplex& x) { return octave::math::erfc (x); }
446 
447 OCTAVE_DEPRECATED (4.2, "use 'octave::math::expm1' instead")
448 inline double xexpm1 (double x) { return octave::math::expm1 (x); }
449 OCTAVE_DEPRECATED (4.2, "use 'octave::math::expm1' instead")
450 inline Complex xexpm1 (const Complex& x) { return octave::math::expm1 (x); }
451 
452 OCTAVE_DEPRECATED (4.2, "use 'octave::math::expm1' instead")
453 inline float xexpm1 (float x) { return octave::math::expm1 (x); }
454 OCTAVE_DEPRECATED (4.2, "use 'octave::math::expm1' instead")
455 inline FloatComplex xexpm1 (const FloatComplex& x) { return octave::math::expm1 (x); }
456 
457 OCTAVE_DEPRECATED (4.2, "use 'octave::math::log1p' instead")
458 inline double xlog1p (double x) { return octave::math::log1p (x); }
459 OCTAVE_DEPRECATED (4.2, "use 'octave::math::log1p' instead")
460 inline Complex xlog1p (const Complex& x) { return octave::math::log1p (x); }
461 
462 OCTAVE_DEPRECATED (4.2, "use 'octave::math::log1p' instead")
463 inline float xlog1p (float x) { return octave::math::log1p (x); }
464 OCTAVE_DEPRECATED (4.2, "use 'octave::math::log1p' instead")
465 inline FloatComplex xlog1p (const FloatComplex& x) { return octave::math::log1p (x); }
466 
467 OCTAVE_DEPRECATED (4.2, "use 'octave::math::cbrt' instead")
468 inline double xcbrt (double x) { return octave::math::cbrt (x); }
469 OCTAVE_DEPRECATED (4.2, "use 'octave::math::cbrt' instead")
470 inline float xcbrt (float x) { return octave::math::cbrt (x); }
471 
472 OCTAVE_DEPRECATED (4.2, "use 'octave::math::gamma' instead")
473 inline double xgamma (double x) { return octave::math::gamma (x); }
474 OCTAVE_DEPRECATED (4.2, "use 'octave::math::lgamma' instead")
475 inline double xlgamma (double x) { return octave::math::lgamma (x); }
476 
477 OCTAVE_DEPRECATED (4.2, "use 'octave::math::rc_lgamma' instead")
478 inline Complex rc_lgamma (double x) { return octave::math::rc_lgamma (x); }
479 
480 OCTAVE_DEPRECATED (4.2, "use 'octave::math::gamma' instead")
481 inline float xgamma (float x) { return octave::math::gamma (x); }
482 OCTAVE_DEPRECATED (4.2, "use 'octave::math::lgamma' instead")
483 inline float xlgamma (float x) { return octave::math::lgamma (x); }
484 OCTAVE_DEPRECATED (4.2, "use 'octave::math::rc_lgamma' instead")
485 inline FloatComplex rc_lgamma (float x) { return octave::math::rc_lgamma (x); }
486 
487 OCTAVE_DEPRECATED (4.2, "use 'octave::math::besselj' instead")
488 inline Complex besselj (double alpha, const Complex& x, bool scaled, octave_idx_type& ierr) { return octave::math::besselj (alpha, x, scaled, ierr); }
489 OCTAVE_DEPRECATED (4.2, "use 'octave::math::bessely' instead")
490 inline Complex bessely (double alpha, const Complex& x, bool scaled, octave_idx_type& ierr) { return octave::math::bessely (alpha, x, scaled, ierr); }
491 OCTAVE_DEPRECATED (4.2, "use 'octave::math::besseli' instead")
492 inline Complex besseli (double alpha, const Complex& x, bool scaled, octave_idx_type& ierr) { return octave::math::besseli (alpha, x, scaled, ierr); }
493 OCTAVE_DEPRECATED (4.2, "use 'octave::math::besselk' instead")
494 inline Complex besselk (double alpha, const Complex& x, bool scaled, octave_idx_type& ierr) { return octave::math::besselk (alpha, x, scaled, ierr); }
495 OCTAVE_DEPRECATED (4.2, "use 'octave::math::besselh1' instead")
496 inline Complex besselh1 (double alpha, const Complex& x, bool scaled, octave_idx_type& ierr) { return octave::math::besselh1 (alpha, x, scaled, ierr); }
497 OCTAVE_DEPRECATED (4.2, "use 'octave::math::besselh2' instead")
498 inline Complex besselh2 (double alpha, const Complex& x, bool scaled, octave_idx_type& ierr) { return octave::math::besselh2 (alpha, x, scaled, ierr); }
499 
500 OCTAVE_DEPRECATED (4.2, "use 'octave::math::besselj' instead")
501 extern OCTAVE_API ComplexMatrix besselj (double alpha, const ComplexMatrix& x, bool scaled, Array<octave_idx_type>& ierr);
502 OCTAVE_DEPRECATED (4.2, "use 'octave::math::bessely' instead")
503 extern OCTAVE_API ComplexMatrix bessely (double alpha, const ComplexMatrix& x, bool scaled, Array<octave_idx_type>& ierr);
504 OCTAVE_DEPRECATED (4.2, "use 'octave::math::besseli' instead")
505 extern OCTAVE_API ComplexMatrix besseli (double alpha, const ComplexMatrix& x, bool scaled, Array<octave_idx_type>& ierr);
506 OCTAVE_DEPRECATED (4.2, "use 'octave::math::besselk' instead")
507 extern OCTAVE_API ComplexMatrix besselk (double alpha, const ComplexMatrix& x, bool scaled, Array<octave_idx_type>& ierr);
508 OCTAVE_DEPRECATED (4.2, "use 'octave::math::besselh1' instead")
509 extern OCTAVE_API ComplexMatrix besselh1 (double alpha, const ComplexMatrix& x, bool scaled, Array<octave_idx_type>& ierr);
510 OCTAVE_DEPRECATED (4.2, "use 'octave::math::besselh2' instead")
511 extern OCTAVE_API ComplexMatrix besselh2 (double alpha, const ComplexMatrix& x, bool scaled, Array<octave_idx_type>& ierr);
512 
513 OCTAVE_DEPRECATED (4.2, "use 'octave::math::besselj' instead")
514 extern OCTAVE_API ComplexMatrix besselj (const Matrix& alpha, const Complex& x, bool scaled, Array<octave_idx_type>& ierr);
515 OCTAVE_DEPRECATED (4.2, "use 'octave::math::bessely' instead")
516 extern OCTAVE_API ComplexMatrix bessely (const Matrix& alpha, const Complex& x, bool scaled, Array<octave_idx_type>& ierr);
517 OCTAVE_DEPRECATED (4.2, "use 'octave::math::besseli' instead")
518 extern OCTAVE_API ComplexMatrix besseli (const Matrix& alpha, const Complex& x, bool scaled, Array<octave_idx_type>& ierr);
519 OCTAVE_DEPRECATED (4.2, "use 'octave::math::besselk' instead")
520 extern OCTAVE_API ComplexMatrix besselk (const Matrix& alpha, const Complex& x, bool scaled, Array<octave_idx_type>& ierr);
521 OCTAVE_DEPRECATED (4.2, "use 'octave::math::besselh1' instead")
522 extern OCTAVE_API ComplexMatrix besselh1 (const Matrix& alpha, const Complex& x, bool scaled, Array<octave_idx_type>& ierr);
523 OCTAVE_DEPRECATED (4.2, "use 'octave::math::besselh2' instead")
524 extern OCTAVE_API ComplexMatrix besselh2 (const Matrix& alpha, const Complex& x, bool scaled, Array<octave_idx_type>& ierr);
525 
526 OCTAVE_DEPRECATED (4.2, "use 'octave::math::besselj' instead")
527 extern OCTAVE_API ComplexMatrix besselj (const Matrix& alpha, const ComplexMatrix& x, bool scaled, Array<octave_idx_type>& ierr);
528 OCTAVE_DEPRECATED (4.2, "use 'octave::math::bessely' instead")
529 extern OCTAVE_API ComplexMatrix bessely (const Matrix& alpha, const ComplexMatrix& x, bool scaled, Array<octave_idx_type>& ierr);
530 OCTAVE_DEPRECATED (4.2, "use 'octave::math::besseli' instead")
531 extern OCTAVE_API ComplexMatrix besseli (const Matrix& alpha, const ComplexMatrix& x, bool scaled, Array<octave_idx_type>& ierr);
532 OCTAVE_DEPRECATED (4.2, "use 'octave::math::besselk' instead")
533 extern OCTAVE_API ComplexMatrix besselk (const Matrix& alpha, const ComplexMatrix& x, bool scaled, Array<octave_idx_type>& ierr);
534 OCTAVE_DEPRECATED (4.2, "use 'octave::math::besselh1' instead")
535 extern OCTAVE_API ComplexMatrix besselh1 (const Matrix& alpha, const ComplexMatrix& x, bool scaled, Array<octave_idx_type>& ierr);
536 OCTAVE_DEPRECATED (4.2, "use 'octave::math::besselh2' instead")
537 extern OCTAVE_API ComplexMatrix besselh2 (const Matrix& alpha, const ComplexMatrix& x, bool scaled, Array<octave_idx_type>& ierr);
538 
539 OCTAVE_DEPRECATED (4.2, "use 'octave::math::besselj' instead")
540 extern OCTAVE_API ComplexNDArray besselj (double alpha, const ComplexNDArray& x, bool scaled, Array<octave_idx_type>& ierr);
541 OCTAVE_DEPRECATED (4.2, "use 'octave::math::bessely' instead")
542 extern OCTAVE_API ComplexNDArray bessely (double alpha, const ComplexNDArray& x, bool scaled, Array<octave_idx_type>& ierr);
543 OCTAVE_DEPRECATED (4.2, "use 'octave::math::besseli' instead")
544 extern OCTAVE_API ComplexNDArray besseli (double alpha, const ComplexNDArray& x, bool scaled, Array<octave_idx_type>& ierr);
545 OCTAVE_DEPRECATED (4.2, "use 'octave::math::besselk' instead")
546 extern OCTAVE_API ComplexNDArray besselk (double alpha, const ComplexNDArray& x, bool scaled, Array<octave_idx_type>& ierr);
547 OCTAVE_DEPRECATED (4.2, "use 'octave::math::besselh1' instead")
548 extern OCTAVE_API ComplexNDArray besselh1 (double alpha, const ComplexNDArray& x, bool scaled, Array<octave_idx_type>& ierr);
549 OCTAVE_DEPRECATED (4.2, "use 'octave::math::besselh2' instead")
550 extern OCTAVE_API ComplexNDArray besselh2 (double alpha, const ComplexNDArray& x, bool scaled, Array<octave_idx_type>& ierr);
551 
552 OCTAVE_DEPRECATED (4.2, "use 'octave::math::besselj' instead")
553 extern OCTAVE_API ComplexNDArray besselj (const NDArray& alpha, const Complex& x, bool scaled, Array<octave_idx_type>& ierr);
554 OCTAVE_DEPRECATED (4.2, "use 'octave::math::bessely' instead")
555 extern OCTAVE_API ComplexNDArray bessely (const NDArray& alpha, const Complex& x, bool scaled, Array<octave_idx_type>& ierr);
556 OCTAVE_DEPRECATED (4.2, "use 'octave::math::besseli' instead")
557 extern OCTAVE_API ComplexNDArray besseli (const NDArray& alpha, const Complex& x, bool scaled, Array<octave_idx_type>& ierr);
558 OCTAVE_DEPRECATED (4.2, "use 'octave::math::besselk' instead")
559 extern OCTAVE_API ComplexNDArray besselk (const NDArray& alpha, const Complex& x, bool scaled, Array<octave_idx_type>& ierr);
560 OCTAVE_DEPRECATED (4.2, "use 'octave::math::besselh1' instead")
561 extern OCTAVE_API ComplexNDArray besselh1 (const NDArray& alpha, const Complex& x, bool scaled, Array<octave_idx_type>& ierr);
562 OCTAVE_DEPRECATED (4.2, "use 'octave::math::besselh2' instead")
563 extern OCTAVE_API ComplexNDArray besselh2 (const NDArray& alpha, const Complex& x, bool scaled, Array<octave_idx_type>& ierr);
564 
565 OCTAVE_DEPRECATED (4.2, "use 'octave::math::besselj' instead")
566 extern OCTAVE_API ComplexNDArray besselj (const NDArray& alpha, const ComplexNDArray& x, bool scaled, Array<octave_idx_type>& ierr);
567 OCTAVE_DEPRECATED (4.2, "use 'octave::math::bessely' instead")
568 extern OCTAVE_API ComplexNDArray bessely (const NDArray& alpha, const ComplexNDArray& x, bool scaled, Array<octave_idx_type>& ierr);
569 OCTAVE_DEPRECATED (4.2, "use 'octave::math::besseli' instead")
570 extern OCTAVE_API ComplexNDArray besseli (const NDArray& alpha, const ComplexNDArray& x, bool scaled, Array<octave_idx_type>& ierr);
571 OCTAVE_DEPRECATED (4.2, "use 'octave::math::besselk' instead")
572 extern OCTAVE_API ComplexNDArray besselk (const NDArray& alpha, const ComplexNDArray& x, bool scaled, Array<octave_idx_type>& ierr);
573 OCTAVE_DEPRECATED (4.2, "use 'octave::math::besselh1' instead")
574 extern OCTAVE_API ComplexNDArray besselh1 (const NDArray& alpha, const ComplexNDArray& x, bool scaled, Array<octave_idx_type>& ierr);
575 OCTAVE_DEPRECATED (4.2, "use 'octave::math::besselh2' instead")
576 extern OCTAVE_API ComplexNDArray besselh2 (const NDArray& alpha, const ComplexNDArray& x, bool scaled, Array<octave_idx_type>& ierr);
577 
578 OCTAVE_DEPRECATED (4.2, "use 'octave::math::besselj' instead")
579 extern OCTAVE_API ComplexMatrix besselj (const RowVector& alpha, const ComplexColumnVector& x, bool scaled, Array<octave_idx_type>& ierr);
580 OCTAVE_DEPRECATED (4.2, "use 'octave::math::bessely' instead")
581 extern OCTAVE_API ComplexMatrix bessely (const RowVector& alpha, const ComplexColumnVector& x, bool scaled, Array<octave_idx_type>& ierr);
582 OCTAVE_DEPRECATED (4.2, "use 'octave::math::besseli' instead")
583 extern OCTAVE_API ComplexMatrix besseli (const RowVector& alpha, const ComplexColumnVector& x, bool scaled, Array<octave_idx_type>& ierr);
584 OCTAVE_DEPRECATED (4.2, "use 'octave::math::besselk' instead")
585 extern OCTAVE_API ComplexMatrix besselk (const RowVector& alpha, const ComplexColumnVector& x, bool scaled, Array<octave_idx_type>& ierr);
586 OCTAVE_DEPRECATED (4.2, "use 'octave::math::besselh1' instead")
587 extern OCTAVE_API ComplexMatrix besselh1 (const RowVector& alpha, const ComplexColumnVector& x, bool scaled, Array<octave_idx_type>& ierr);
588 OCTAVE_DEPRECATED (4.2, "use 'octave::math::besselh2' instead")
589 extern OCTAVE_API ComplexMatrix besselh2 (const RowVector& alpha, const ComplexColumnVector& x, bool scaled, Array<octave_idx_type>& ierr);
590 
591 OCTAVE_DEPRECATED (4.2, "use 'octave::math::besselj' instead")
592 inline FloatComplex besselj (float alpha, const FloatComplex& x, bool scaled, octave_idx_type& ierr) { return octave::math::besselj (alpha, x, scaled, ierr); }
593 OCTAVE_DEPRECATED (4.2, "use 'octavh::bessely' instead")
594 inline FloatComplex bessely (float alpha, const FloatComplex& x, bool scaled, octave_idx_type& ierr) { return octave::math::bessely (alpha, x, scaled, ierr); }
595 OCTAVE_DEPRECATED (4.2, "use 'octavh::besseli' instead")
596 inline FloatComplex besseli (float alpha, const FloatComplex& x, bool scaled, octave_idx_type& ierr) { return octave::math::besseli (alpha, x, scaled, ierr); }
597 OCTAVE_DEPRECATED (4.2, "use 'octavh::besselk' instead")
598 inline FloatComplex besselk (float alpha, const FloatComplex& x, bool scaled, octave_idx_type& ierr) { return octave::math::besselk (alpha, x, scaled, ierr); }
599 OCTAVE_DEPRECATED (4.2, "use 'octavh::besselh1' instead")
600 inline FloatComplex besselh1 (float alpha, const FloatComplex& x, bool scaled, octave_idx_type& ierr) { return octave::math::besselh1 (alpha, x, scaled, ierr); }
601 OCTAVE_DEPRECATED (4.2, "use 'octavh::besselh2' instead")
602 inline FloatComplex besselh2 (float alpha, const FloatComplex& x, bool scaled, octave_idx_type& ierr) { return octave::math::besselh2 (alpha, x, scaled, ierr); }
603 
604 OCTAVE_DEPRECATED (4.2, "use 'octave::math::besselj' instead")
605 extern OCTAVE_API FloatComplexMatrix besselj (float alpha, const FloatComplexMatrix& x, bool scaled, Array<octave_idx_type>& ierr);
606 OCTAVE_DEPRECATED (4.2, "use 'octave::math::bessely' instead")
607 extern OCTAVE_API FloatComplexMatrix bessely (float alpha, const FloatComplexMatrix& x, bool scaled, Array<octave_idx_type>& ierr);
608 OCTAVE_DEPRECATED (4.2, "use 'octave::math::besseli' instead")
609 extern OCTAVE_API FloatComplexMatrix besseli (float alpha, const FloatComplexMatrix& x, bool scaled, Array<octave_idx_type>& ierr);
610 OCTAVE_DEPRECATED (4.2, "use 'octave::math::besselk' instead")
611 extern OCTAVE_API FloatComplexMatrix besselk (float alpha, const FloatComplexMatrix& x, bool scaled, Array<octave_idx_type>& ierr);
612 OCTAVE_DEPRECATED (4.2, "use 'octave::math::besselh1' instead")
613 extern OCTAVE_API FloatComplexMatrix besselh1 (float alpha, const FloatComplexMatrix& x, bool scaled, Array<octave_idx_type>& ierr);
614 OCTAVE_DEPRECATED (4.2, "use 'octave::math::besselh2' instead")
615 extern OCTAVE_API FloatComplexMatrix besselh2 (float alpha, const FloatComplexMatrix& x, bool scaled, Array<octave_idx_type>& ierr);
616 
617 OCTAVE_DEPRECATED (4.2, "use 'octave::math::besselj' instead")
618 extern OCTAVE_API FloatComplexMatrix besselj (const FloatMatrix& alpha, const FloatComplex& x, bool scaled, Array<octave_idx_type>& ierr);
619 OCTAVE_DEPRECATED (4.2, "use 'octave::math::bessely' instead")
620 extern OCTAVE_API FloatComplexMatrix bessely (const FloatMatrix& alpha, const FloatComplex& x, bool scaled, Array<octave_idx_type>& ierr);
621 OCTAVE_DEPRECATED (4.2, "use 'octave::math::besseli' instead")
622 extern OCTAVE_API FloatComplexMatrix besseli (const FloatMatrix& alpha, const FloatComplex& x, bool scaled, Array<octave_idx_type>& ierr);
623 OCTAVE_DEPRECATED (4.2, "use 'octave::math::besselk' instead")
624 extern OCTAVE_API FloatComplexMatrix besselk (const FloatMatrix& alpha, const FloatComplex& x, bool scaled, Array<octave_idx_type>& ierr);
625 OCTAVE_DEPRECATED (4.2, "use 'octave::math::besselh1' instead")
626 extern OCTAVE_API FloatComplexMatrix besselh1 (const FloatMatrix& alpha, const FloatComplex& x, bool scaled, Array<octave_idx_type>& ierr);
627 OCTAVE_DEPRECATED (4.2, "use 'octave::math::besselh2' instead")
628 extern OCTAVE_API FloatComplexMatrix besselh2 (const FloatMatrix& alpha, const FloatComplex& x, bool scaled, Array<octave_idx_type>& ierr);
629 
630 OCTAVE_DEPRECATED (4.2, "use 'octave::math::besselj' instead")
631 extern OCTAVE_API FloatComplexMatrix besselj (const FloatMatrix& alpha, const FloatComplexMatrix& x, bool scaled, Array<octave_idx_type>& ierr);
632 OCTAVE_DEPRECATED (4.2, "use 'octave::math::bessely' instead")
633 extern OCTAVE_API FloatComplexMatrix bessely (const FloatMatrix& alpha, const FloatComplexMatrix& x, bool scaled, Array<octave_idx_type>& ierr);
634 OCTAVE_DEPRECATED (4.2, "use 'octave::math::besseli' instead")
635 extern OCTAVE_API FloatComplexMatrix besseli (const FloatMatrix& alpha, const FloatComplexMatrix& x, bool scaled, Array<octave_idx_type>& ierr);
636 OCTAVE_DEPRECATED (4.2, "use 'octave::math::besselk' instead")
637 extern OCTAVE_API FloatComplexMatrix besselk (const FloatMatrix& alpha, const FloatComplexMatrix& x, bool scaled, Array<octave_idx_type>& ierr);
638 OCTAVE_DEPRECATED (4.2, "use 'octave::math::besselh1' instead")
639 extern OCTAVE_API FloatComplexMatrix besselh1 (const FloatMatrix& alpha, const FloatComplexMatrix& x, bool scaled, Array<octave_idx_type>& ierr);
640 OCTAVE_DEPRECATED (4.2, "use 'octave::math::besselh2' instead")
641 extern OCTAVE_API FloatComplexMatrix besselh2 (const FloatMatrix& alpha, const FloatComplexMatrix& x, bool scaled, Array<octave_idx_type>& ierr);
642 
643 OCTAVE_DEPRECATED (4.2, "use 'octave::math::besselj' instead")
644 extern OCTAVE_API FloatComplexNDArray besselj (float alpha, const FloatComplexNDArray& x, bool scaled, Array<octave_idx_type>& ierr);
645 OCTAVE_DEPRECATED (4.2, "use 'octave::math::bessely' instead")
646 extern OCTAVE_API FloatComplexNDArray bessely (float alpha, const FloatComplexNDArray& x, bool scaled, Array<octave_idx_type>& ierr);
647 OCTAVE_DEPRECATED (4.2, "use 'octave::math::besseli' instead")
648 extern OCTAVE_API FloatComplexNDArray besseli (float alpha, const FloatComplexNDArray& x, bool scaled, Array<octave_idx_type>& ierr);
649 OCTAVE_DEPRECATED (4.2, "use 'octave::math::besselk' instead")
650 extern OCTAVE_API FloatComplexNDArray besselk (float alpha, const FloatComplexNDArray& x, bool scaled, Array<octave_idx_type>& ierr);
651 OCTAVE_DEPRECATED (4.2, "use 'octave::math::besselh1' instead")
652 extern OCTAVE_API FloatComplexNDArray besselh1 (float alpha, const FloatComplexNDArray& x, bool scaled, Array<octave_idx_type>& ierr);
653 OCTAVE_DEPRECATED (4.2, "use 'octave::math::besselh2' instead")
654 extern OCTAVE_API FloatComplexNDArray besselh2 (float alpha, const FloatComplexNDArray& x, bool scaled, Array<octave_idx_type>& ierr);
655 
656 OCTAVE_DEPRECATED (4.2, "use 'octave::math::besselj' instead")
657 extern OCTAVE_API FloatComplexNDArray besselj (const FloatNDArray& alpha, const FloatComplex& x, bool scaled, Array<octave_idx_type>& ierr);
658 OCTAVE_DEPRECATED (4.2, "use 'octave::math::bessely' instead")
659 extern OCTAVE_API FloatComplexNDArray bessely (const FloatNDArray& alpha, const FloatComplex& x, bool scaled, Array<octave_idx_type>& ierr);
660 OCTAVE_DEPRECATED (4.2, "use 'octave::math::besseli' instead")
661 extern OCTAVE_API FloatComplexNDArray besseli (const FloatNDArray& alpha, const FloatComplex& x, bool scaled, Array<octave_idx_type>& ierr);
662 OCTAVE_DEPRECATED (4.2, "use 'octave::math::besselk' instead")
663 extern OCTAVE_API FloatComplexNDArray besselk (const FloatNDArray& alpha, const FloatComplex& x, bool scaled, Array<octave_idx_type>& ierr);
664 OCTAVE_DEPRECATED (4.2, "use 'octave::math::besselh1' instead")
665 extern OCTAVE_API FloatComplexNDArray besselh1 (const FloatNDArray& alpha, const FloatComplex& x, bool scaled, Array<octave_idx_type>& ierr);
666 OCTAVE_DEPRECATED (4.2, "use 'octave::math::besselh2' instead")
667 extern OCTAVE_API FloatComplexNDArray besselh2 (const FloatNDArray& alpha, const FloatComplex& x, bool scaled, Array<octave_idx_type>& ierr);
668 
669 OCTAVE_DEPRECATED (4.2, "use 'octave::math::besselj' instead")
670 extern OCTAVE_API FloatComplexNDArray besselj (const FloatNDArray& alpha, const FloatComplexNDArray& x, bool scaled, Array<octave_idx_type>& ierr);
671 OCTAVE_DEPRECATED (4.2, "use 'octave::math::bessely' instead")
672 extern OCTAVE_API FloatComplexNDArray bessely (const FloatNDArray& alpha, const FloatComplexNDArray& x, bool scaled, Array<octave_idx_type>& ierr);
673 OCTAVE_DEPRECATED (4.2, "use 'octave::math::besseli' instead")
674 extern OCTAVE_API FloatComplexNDArray besseli (const FloatNDArray& alpha, const FloatComplexNDArray& x, bool scaled, Array<octave_idx_type>& ierr);
675 OCTAVE_DEPRECATED (4.2, "use 'octave::math::besselk' instead")
676 extern OCTAVE_API FloatComplexNDArray besselk (const FloatNDArray& alpha, const FloatComplexNDArray& x, bool scaled, Array<octave_idx_type>& ierr);
677 OCTAVE_DEPRECATED (4.2, "use 'octave::math::besselh1' instead")
678 extern OCTAVE_API FloatComplexNDArray besselh1 (const FloatNDArray& alpha, const FloatComplexNDArray& x, bool scaled, Array<octave_idx_type>& ierr);
679 OCTAVE_DEPRECATED (4.2, "use 'octave::math::besselh2' instead")
680 extern OCTAVE_API FloatComplexNDArray besselh2 (const FloatNDArray& alpha, const FloatComplexNDArray& x, bool scaled, Array<octave_idx_type>& ierr);
681 
682 OCTAVE_DEPRECATED (4.2, "use 'octave::math::besselj' instead")
683 extern OCTAVE_API FloatComplexMatrix besselj (const FloatRowVector& alpha, const FloatComplexColumnVector& x, bool scaled, Array<octave_idx_type>& ierr);
684 OCTAVE_DEPRECATED (4.2, "use 'octave::math::bessely' instead")
685 extern OCTAVE_API FloatComplexMatrix bessely (const FloatRowVector& alpha, const FloatComplexColumnVector& x, bool scaled, Array<octave_idx_type>& ierr);
686 OCTAVE_DEPRECATED (4.2, "use 'octave::math::besseli' instead")
687 extern OCTAVE_API FloatComplexMatrix besseli (const FloatRowVector& alpha, const FloatComplexColumnVector& x, bool scaled, Array<octave_idx_type>& ierr);
688 OCTAVE_DEPRECATED (4.2, "use 'octave::math::besselk' instead")
689 extern OCTAVE_API FloatComplexMatrix besselk (const FloatRowVector& alpha, const FloatComplexColumnVector& x, bool scaled, Array<octave_idx_type>& ierr);
690 OCTAVE_DEPRECATED (4.2, "use 'octave::math::besselh1' instead")
691 extern OCTAVE_API FloatComplexMatrix besselh1 (const FloatRowVector& alpha, const FloatComplexColumnVector& x, bool scaled, Array<octave_idx_type>& ierr);
692 OCTAVE_DEPRECATED (4.2, "use 'octave::math::besselh2' instead")
693 extern OCTAVE_API FloatComplexMatrix besselh2 (const FloatRowVector& alpha, const FloatComplexColumnVector& x, bool scaled, Array<octave_idx_type>& ierr);
694 
695 OCTAVE_DEPRECATED (4.2, "use 'octave::math::airy' instead")
696 inline Complex airy (const Complex& z, bool deriv, bool scaled, octave_idx_type& ierr) { return octave::math::airy (z, deriv, scaled, ierr); }
697 OCTAVE_DEPRECATED (4.2, "use 'octave::math::biry' instead")
698 inline Complex biry (const Complex& z, bool deriv, bool scaled, octave_idx_type& ierr) { return octave::math::biry (z, deriv, scaled, ierr); }
699 
700 OCTAVE_DEPRECATED (4.2, "use 'octave::math::airy' instead")
701 extern OCTAVE_API ComplexMatrix airy (const ComplexMatrix& z, bool deriv, bool scaled, Array<octave_idx_type>& ierr);
702 OCTAVE_DEPRECATED (4.2, "use 'octave::math::biry' instead")
703 extern OCTAVE_API ComplexMatrix biry (const ComplexMatrix& z, bool deriv, bool scaled, Array<octave_idx_type>& ierr);
704 
705 OCTAVE_DEPRECATED (4.2, "use 'octave::math::airy' instead")
706 extern OCTAVE_API ComplexNDArray airy (const ComplexNDArray& z, bool deriv, bool scaled, Array<octave_idx_type>& ierr);
707 OCTAVE_DEPRECATED (4.2, "use 'octave::math::biry' instead")
708 extern OCTAVE_API ComplexNDArray biry (const ComplexNDArray& z, bool deriv, bool scaled, Array<octave_idx_type>& ierr);
709 
710 OCTAVE_DEPRECATED (4.2, "use 'octave::math::airy' instead")
711 inline FloatComplex airy (const FloatComplex& z, bool deriv, bool scaled, octave_idx_type& ierr) { return octave::math::airy (z, deriv, scaled, ierr); }
712 OCTAVE_DEPRECATED (4.2, "use 'octave::math::biry' instead")
713 inline FloatComplex biry (const FloatComplex& z, bool deriv, bool scaled, octave_idx_type& ierr) { return octave::math::biry (z, deriv, scaled, ierr); }
714 
715 OCTAVE_DEPRECATED (4.2, "use 'octave::math::airy' instead")
716 extern OCTAVE_API FloatComplexMatrix airy (const FloatComplexMatrix& z, bool deriv, bool scaled, Array<octave_idx_type>& ierr);
717 OCTAVE_DEPRECATED (4.2, "use 'octave::math::biry' instead")
718 extern OCTAVE_API FloatComplexMatrix biry (const FloatComplexMatrix& z, bool deriv, bool scaled, Array<octave_idx_type>& ierr);
719 
720 OCTAVE_DEPRECATED (4.2, "use 'octave::math::airy' instead")
721 extern OCTAVE_API FloatComplexNDArray airy (const FloatComplexNDArray& z, bool deriv, bool scaled, Array<octave_idx_type>& ierr);
722 OCTAVE_DEPRECATED (4.2, "use 'octave::math::biry' instead")
723 extern OCTAVE_API FloatComplexNDArray biry (const FloatComplexNDArray& z, bool deriv, bool scaled, Array<octave_idx_type>& ierr);
724 
725 OCTAVE_DEPRECATED (4.2, "use 'octave::math::gammainc' instead")
726 inline double gammainc (double x, double a, bool& err) { return octave::math::gammainc (x, a, err); }
727 OCTAVE_DEPRECATED (4.2, "use 'octave::math::gammainc' instead")
728 inline double gammainc (double x, double a) { return octave::math::gammainc (x, a); }
729 
730 OCTAVE_DEPRECATED (4.2, "use 'octave::math::gammainc' instead")
731 extern OCTAVE_API Matrix gammainc (double x, const Matrix& a);
732 OCTAVE_DEPRECATED (4.2, "use 'octave::math::gammainc' instead")
733 extern OCTAVE_API Matrix gammainc (const Matrix& x, double a);
734 OCTAVE_DEPRECATED (4.2, "use 'octave::math::gammainc' instead")
735 extern OCTAVE_API Matrix gammainc (const Matrix& x, const Matrix& a);
736 
737 OCTAVE_DEPRECATED (4.2, "use 'octave::math::gammainc' instead")
738 extern OCTAVE_API NDArray gammainc (double x, const NDArray& a);
739 OCTAVE_DEPRECATED (4.2, "use 'octave::math::gammainc' instead")
740 extern OCTAVE_API NDArray gammainc (const NDArray& x, double a);
741 OCTAVE_DEPRECATED (4.2, "use 'octave::math::rc_log1p' instead")
742 extern OCTAVE_API NDArray gammainc (const NDArray& x, const NDArray& a);
743 
744 OCTAVE_DEPRECATED (4.2, "use 'octave::math::gammainc' instead")
745 inline float gammainc (float x, float a, bool& err) { return octave::math::gammainc (x, a, err); }
746 OCTAVE_DEPRECATED (4.2, "use 'octave::math::gammainc' instead")
747 inline float gammainc (float x, float a) { return octave::math::gammainc (x, a); }
748 
749 OCTAVE_DEPRECATED (4.2, "use 'octave::math::rc_log1p' instead")
750 extern OCTAVE_API FloatMatrix gammainc (float x, const FloatMatrix& a);
751 OCTAVE_DEPRECATED (4.2, "use 'octave::math::rc_log1p' instead")
752 extern OCTAVE_API FloatMatrix gammainc (const FloatMatrix& x, float a);
753 OCTAVE_DEPRECATED (4.2, "use 'octave::math::rc_log1p' instead")
754 extern OCTAVE_API FloatMatrix gammainc (const FloatMatrix& x, const FloatMatrix& a);
755 
756 OCTAVE_DEPRECATED (4.2, "use 'octave::math::rc_log1p' instead")
757 extern OCTAVE_API FloatNDArray gammainc (float x, const FloatNDArray& a);
758 OCTAVE_DEPRECATED (4.2, "use 'octave::math::rc_log1p' instead")
759 extern OCTAVE_API FloatNDArray gammainc (const FloatNDArray& x, float a);
760 OCTAVE_DEPRECATED (4.2, "use 'octave::math::rc_log1p' instead")
761 extern OCTAVE_API FloatNDArray gammainc (const FloatNDArray& x, const FloatNDArray& a);
762 
763 OCTAVE_DEPRECATED (4.2, "use 'octave::math::rc_log1p' instead")
764 inline Complex rc_log1p (double x) { return octave::math::rc_log1p (x); }
765 OCTAVE_DEPRECATED (4.2, "use 'octave::math::rc_log1p' instead")
766 inline FloatComplex rc_log1p (float x) { return octave::math::rc_log1p (x); }
767 
768 OCTAVE_DEPRECATED (4.2, "use 'octave::math::erfinv' instead")
769 inline double erfinv (double x) { return octave::math::erfinv (x); }
770 OCTAVE_DEPRECATED (4.2, "use 'octave::math::erfinv' instead")
771 inline float erfinv (float x) { return octave::math::erfinv (x); }
772 
773 OCTAVE_DEPRECATED (4.2, "use 'octave::math::erfcinv' instead")
774 inline double erfcinv (double x) { return octave::math::erfcinv (x); }
775 OCTAVE_DEPRECATED (4.2, "use 'octave::math::erfcinv' instead")
776 inline float erfcinv (float x) { return octave::math::erfcinv (x); }
777 
778 OCTAVE_DEPRECATED (4.2, "use 'octave::math::erfcx' instead")
779 inline float erfcx (float x) { return octave::math::erfcx (x); }
780 OCTAVE_DEPRECATED (4.2, "use 'octave::math::erfcx' instead")
781 inline double erfcx (double x) { return octave::math::erfcx (x); }
782 OCTAVE_DEPRECATED (4.2, "use 'octave::math::erfcx' instead")
783 inline Complex erfcx (const Complex& x) { return octave::math::erfcx (x); }
784 OCTAVE_DEPRECATED (4.2, "use 'octave::math::erfcx' instead")
785 inline FloatComplex erfcx (const FloatComplex& x) { return octave::math::erfcx (x); }
786 
787 OCTAVE_DEPRECATED (4.2, "use 'octave::math::erfi' instead")
788 inline float erfi (float x) { return octave::math::erfi (x); }
789 OCTAVE_DEPRECATED (4.2, "use 'octave::math::erfi' instead")
790 inline double erfi (double x) { return octave::math::erfi (x); }
791 OCTAVE_DEPRECATED (4.2, "use 'octave::math::erfi' instead")
792 inline Complex erfi (const Complex& x) { return octave::math::erfi (x); }
793 OCTAVE_DEPRECATED (4.2, "use 'octave::math::erfi' instead")
794 inline FloatComplex erfi (const FloatComplex& x) { return octave::math::erfi (x); }
795 
796 OCTAVE_DEPRECATED (4.2, "use 'octave::math::dawson' instead")
797 inline float dawson (float x) { return octave::math::dawson (x); }
798 OCTAVE_DEPRECATED (4.2, "use 'octave::math::dawson' instead")
799 inline double dawson (double x) { return octave::math::dawson (x); }
800 OCTAVE_DEPRECATED (4.2, "use 'octave::math::dawson' instead")
801 inline Complex dawson (const Complex& x) { return octave::math::dawson (x); }
802 OCTAVE_DEPRECATED (4.2, "use 'octave::math::dawson' instead")
803 inline FloatComplex dawson (const FloatComplex& x) { return octave::math::dawson (x); }
804 
805 OCTAVE_DEPRECATED (4.2, "use 'octave::math::ellipj' instead")
806 inline void ellipj (double u, double m, double& sn, double& cn, double& dn, double& err) { octave::math::ellipj (u, m, sn, cn, dn, err); }
807 OCTAVE_DEPRECATED (4.2, "use 'octave::math::ellipj' instead")
808 inline void ellipj (const Complex& u, double m, Complex& sn, Complex& cn, Complex& dn, double& err) { octave::math::ellipj (u, m, sn, cn, dn, err); }
809 
810 //! Digamma function.
811 //!
812 //! Only defined for double and float.
813 template <typename T>
814 OCTAVE_DEPRECATED (4.2, "use 'octave::math::psi' instead")
815 T
816 psi (T z);
817 
818 template <>
819 inline double
820 psi (double z)
821 {
822  return octave::math::psi (z);
823 }
824 
825 template <>
826 inline float
827 psi (float z)
828 {
829  return octave::math::psi (z);
830 }
831 
832 //! Digamma function for complex input.
833 //!
834 //! Only defined for double and float.
835 template <typename T>
836 OCTAVE_DEPRECATED (4.2, "use 'octave::math::psi' instead")
837 std::complex<T>
838 psi (const std::complex<T>& z);
839 
840 template <>
841 inline std::complex<double>
842 psi (const std::complex<double>& z)
843 {
844  return octave::math::psi (z);
845 }
846 
847 template <>
848 inline std::complex<float>
849 psi (const std::complex<float>& z)
850 {
851  return octave::math::psi (z);
852 }
853 
854 //! Polygamma function.
855 //!
856 //! Only defined for double and float.
857 //! @param n must be non-negative. If zero, the digamma function is computed.
858 //! @param z must be real and non-negative.
859 template <typename T>
860 OCTAVE_DEPRECATED (4.2, "use 'octave::math::psi' instead")
861 T
862 psi (octave_idx_type n, T z);
863 
864 template<>
865 inline double
866 psi (octave_idx_type n, double z)
867 {
868  return octave::math::psi (n, z);
869 }
870 
871 template<>
872 inline float
873 psi (octave_idx_type n, float z)
874 {
875  return octave::math::psi (n, z);
876 }
877 
878 #endif
879 
880 #endif
double erfcx(double x)
Definition: lo-specfun.cc:1756
double psi(double z)
Definition: lo-specfun.cc:2100
float log1p(float x)
Definition: lo-specfun.h:381
std::complex< double > erfi(std::complex< double > z, double relerr=0)
FloatComplex atanh(const FloatComplex &x)
Definition: lo-specfun.h:75
double erfi(double x)
Definition: lo-specfun.cc:1775
Complex besselk(double alpha, const Complex &x, bool scaled, octave_idx_type &ierr)
Definition: lo-specfun.cc:818
double asinh(double x)
Definition: lo-specfun.h:67
Complex rc_lgamma(double x)
Definition: lo-specfun.cc:2211
Complex besselh1(double alpha, const Complex &x, bool scaled, octave_idx_type &ierr)
Definition: lo-specfun.cc:819
STL namespace.
static double xlgamma(double x)
Definition: randpoisson.cc:54
u
Definition: lu.cc:138
float erfc(float x)
Definition: lo-specfun.h:317
FloatComplex asinh(const FloatComplex &x)
Definition: lo-specfun.h:70
Complex erfc(const Complex &x)
Definition: lo-specfun.cc:1653
calling an anonymous function involves an overhead quite comparable to the overhead of an m file function Passing a handle to a built in function is because the interpreter is not involved in the internal loop For a
Definition: cellfun.cc:400
double lgamma(double x)
Definition: lo-specfun.h:377
Complex expm1(const Complex &x)
Definition: lo-specfun.cc:1875
OCTAVE_API FloatNDArray gammainc(const FloatNDArray &x, const FloatNDArray &a)
double acosh(double x)
Definition: lo-specfun.h:49
double gamma(double x)
Definition: lo-specfun.cc:1913
Complex besseli(double alpha, const Complex &x, bool scaled, octave_idx_type &ierr)
Definition: lo-specfun.cc:817
Complex log1p(const Complex &x)
Definition: lo-specfun.cc:1959
double dawson(double x)
Definition: lo-specfun.cc:1518
std::complex< double > erfcx(std::complex< double > z, double relerr=0)
double atanh(double x)
Definition: lo-specfun.h:72
Definition: dMatrix.h:36
float expm1(float x)
Definition: lo-specfun.h:338
Complex erf(const Complex &x)
Definition: lo-specfun.cc:1638
double cbrt(double x)
Definition: lo-specfun.h:298
double erfcinv(double x)
Definition: lo-specfun.cc:1745
float cbrt(float x)
Definition: lo-specfun.h:299
float erf(float x)
Definition: lo-specfun.h:312
Complex rc_log1p(double x)
Definition: lo-specfun.cc:2248
Complex besselh2(double alpha, const Complex &x, bool scaled, octave_idx_type &ierr)
Definition: lo-specfun.cc:820
double erfinv(double x)
Definition: lo-specfun.cc:1864
void ellipj(double u, double m, double &sn, double &cn, double &dn, double &err)
Definition: lo-specfun.cc:1537
OCTAVE_API double gammainc(double x, double a, bool &err)
std::complex< float > FloatComplex
Definition: oct-cmplx.h:32
OCTAVE_EXPORT octave_value_list error nd deftypefn *const octave_scalar_map err
Definition: error.cc:1049
Complex airy(const Complex &z, bool deriv, bool scaled, octave_idx_type &ierr)
Definition: lo-specfun.cc:132
std::complex< double > Complex
Definition: oct-cmplx.h:31
FloatComplex acosh(const FloatComplex &x)
Definition: lo-specfun.h:52
F77_RET_T const F77_REAL const F77_REAL F77_REAL &F77_RET_T const F77_DBLE const F77_DBLE F77_DBLE &F77_RET_T const F77_DBLE F77_DBLE &F77_RET_T const F77_REAL F77_REAL &F77_RET_T const F77_DBLE const F77_DBLE F77_DBLE const F77_INT F77_INT & ierr
float lgamma(float x)
Definition: lo-specfun.h:378
F77_RET_T const F77_REAL const F77_REAL F77_REAL &F77_RET_T const F77_DBLE const F77_DBLE F77_DBLE &F77_RET_T const F77_DBLE F77_DBLE &F77_RET_T const F77_REAL F77_REAL &F77_RET_T const F77_DBLE * x
Complex besselj(double alpha, const Complex &x, bool scaled, octave_idx_type &ierr)
Definition: lo-specfun.cc:815
Complex bessely(double alpha, const Complex &x, bool scaled, octave_idx_type &ierr)
Definition: lo-specfun.cc:816
Complex biry(const Complex &z, bool deriv, bool scaled, octave_idx_type &ierr)
Definition: lo-specfun.cc:1378