blob: 3f5c564462bc2d3c5c243a02abd94f99f1aed05a [file] [log] [blame]
Austin Schuh189376f2018-12-20 22:11:15 +11001namespace Eigen {
2
3/** \eigenManualPage CoeffwiseMathFunctions Catalog of coefficient-wise math functions
4
5
6<!-- <span style="font-size:300%; color:red; font-weight: 900;">!WORK IN PROGRESS!</span> -->
7
8This table presents a catalog of the coefficient-wise math functions supported by %Eigen.
9In this table, \c a, \c b, refer to Array objects or expressions, and \c m refers to a linear algebra Matrix/Vector object. Standard scalar types are abbreviated as follows:
10 - \c int: \c i32
11 - \c float: \c f
12 - \c double: \c d
13 - \c std::complex<float>: \c cf
14 - \c std::complex<double>: \c cd
15
16For each row, the first column list the equivalent calls for arrays, and matrices when supported. Of course, all functions are available for matrices by first casting it as an array: \c m.array().
17
18The third column gives some hints in the underlying scalar implementation. In most cases, %Eigen does not implement itself the math function but relies on the STL for standard scalar types, or user-provided functions for custom scalar types.
19For instance, some simply calls the respective function of the STL while preserving <a href="http://en.cppreference.com/w/cpp/language/adl">argument-dependent lookup</a> for custom types.
20The following:
21\code
22using std::foo;
23foo(a[i]);
24\endcode
25means that the STL's function \c std::foo will be potentially called if it is compatible with the underlying scalar type. If not, then the user must ensure that an overload of the function foo is available for the given scalar type (usually defined in the same namespace as the given scalar type).
26This also means that, unless specified, if the function \c std::foo is available only in some recent c++ versions (e.g., c++11), then the respective %Eigen's function/method will be usable on standard types only if the compiler support the required c++ version.
27
28<table class="manual-hl">
29<tr>
30<th>API</th><th>Description</th><th>Default scalar implementation</th><th>SIMD</th>
31</tr>
32<tr><td colspan="4"></td></tr>
33<tr><th colspan="4">Basic operations</th></tr>
34<tr>
35 <td class="code">
36 \anchor cwisetable_abs
37 a.\link ArrayBase::abs abs\endlink(); \n
38 \link Eigen::abs abs\endlink(a); \n
39 m.\link MatrixBase::cwiseAbs cwiseAbs\endlink();
40 </td>
41 <td>absolute value (\f$ |a_i| \f$) </td>
42 <td class="code">
43 using <a href="http://en.cppreference.com/w/cpp/numeric/math/fabs">std::abs</a>; \n
44 abs(a[i]);
45 </td>
46 <td>SSE2, AVX (i32,f,d)</td>
47</tr>
48<tr>
49 <td class="code">
50 \anchor cwisetable_inverse
51 a.\link ArrayBase::inverse inverse\endlink(); \n
52 \link Eigen::inverse inverse\endlink(a); \n
53 m.\link MatrixBase::cwiseInverse cwiseInverse\endlink();
54 </td>
55 <td>inverse value (\f$ 1/a_i \f$) </td>
56 <td class="code">
57 1/a[i];
58 </td>
59 <td>All engines (f,d,fc,fd)</td>
60</tr>
61<tr>
62 <td class="code">
63 \anchor cwisetable_conj
64 a.\link ArrayBase::conjugate conjugate\endlink(); \n
65 \link Eigen::conj conj\endlink(a); \n
66 m.\link MatrixBase::conjugate conjugate\endlink();
67 </td>
68 <td><a href="https://en.wikipedia.org/wiki/Complex_conjugate">complex conjugate</a> (\f$ \bar{a_i} \f$),\n
69 no-op for real </td>
70 <td class="code">
71 using <a href="http://en.cppreference.com/w/cpp/numeric/complex/conj">std::conj</a>; \n
72 conj(a[i]);
73 </td>
74 <td>All engines (fc,fd)</td>
75</tr>
76<tr>
Austin Schuhc55b0172022-02-20 17:52:35 -080077 <td class="code">
78 \anchor cwisetable_arg
79 a.\link ArrayBase::arg arg\endlink(); \n
80 \link Eigen::arg arg\endlink(a); \n
81 m.\link MatrixBase::cwiseArg cwiseArg\endlink();
82 </td>
83 <td>phase angle of complex number</td>
84 <td class="code">
85 using <a href="http://en.cppreference.com/w/cpp/numeric/complex/arg">std::arg</a>; \n
86 arg(a[i]);
87 </td>
88 <td>All engines (fc,fd)</td>
89</tr>
90<tr>
Austin Schuh189376f2018-12-20 22:11:15 +110091<th colspan="4">Exponential functions</th>
92</tr>
93<tr>
94 <td class="code">
95 \anchor cwisetable_exp
96 a.\link ArrayBase::exp exp\endlink(); \n
97 \link Eigen::exp exp\endlink(a);
98 </td>
99 <td>\f$ e \f$ raised to the given power (\f$ e^{a_i} \f$) </td>
100 <td class="code">
101 using <a href="http://en.cppreference.com/w/cpp/numeric/math/exp">std::exp</a>; \n
102 exp(a[i]);
103 </td>
104 <td>SSE2, AVX (f,d)</td>
105</tr>
106<tr>
107 <td class="code">
108 \anchor cwisetable_log
109 a.\link ArrayBase::log log\endlink(); \n
110 \link Eigen::log log\endlink(a);
111 </td>
112 <td>natural (base \f$ e \f$) logarithm (\f$ \ln({a_i}) \f$)</td>
113 <td class="code">
114 using <a href="http://en.cppreference.com/w/cpp/numeric/math/log">std::log</a>; \n
115 log(a[i]);
116 </td>
117 <td>SSE2, AVX (f)</td>
118</tr>
119<tr>
120 <td class="code">
121 \anchor cwisetable_log1p
122 a.\link ArrayBase::log1p log1p\endlink(); \n
123 \link Eigen::log1p log1p\endlink(a);
124 </td>
125 <td>natural (base \f$ e \f$) logarithm of 1 plus \n the given number (\f$ \ln({1+a_i}) \f$)</td>
126 <td>built-in generic implementation based on \c log,\n
127 plus \c using <a href="http://en.cppreference.com/w/cpp/numeric/math/log1p">\c std::log1p </a>; \cpp11</td>
128 <td></td>
129</tr>
130<tr>
131 <td class="code">
132 \anchor cwisetable_log10
133 a.\link ArrayBase::log10 log10\endlink(); \n
134 \link Eigen::log10 log10\endlink(a);
135 </td>
136 <td>base 10 logarithm (\f$ \log_{10}({a_i}) \f$)</td>
137 <td class="code">
138 using <a href="http://en.cppreference.com/w/cpp/numeric/math/log10">std::log10</a>; \n
139 log10(a[i]);
140 </td>
141 <td></td>
142</tr>
143<tr>
144<th colspan="4">Power functions</th>
145</tr>
146<tr>
147 <td class="code">
148 \anchor cwisetable_pow
149 a.\link ArrayBase::pow pow\endlink(b); \n
150 \link ArrayBase::pow(const Eigen::ArrayBase< Derived > &x, const Eigen::ArrayBase< ExponentDerived > &exponents) pow\endlink(a,b);
151 </td>
152 <!-- For some reason Doxygen thinks that pow is in ArrayBase namespace -->
153 <td>raises a number to the given power (\f$ a_i ^ {b_i} \f$) \n \c a and \c b can be either an array or scalar.</td>
154 <td class="code">
155 using <a href="http://en.cppreference.com/w/cpp/numeric/math/pow">std::pow</a>; \n
156 pow(a[i],b[i]);\n
157 (plus builtin for integer types)</td>
158 <td></td>
159</tr>
160<tr>
161 <td class="code">
162 \anchor cwisetable_sqrt
163 a.\link ArrayBase::sqrt sqrt\endlink(); \n
164 \link Eigen::sqrt sqrt\endlink(a);\n
165 m.\link MatrixBase::cwiseSqrt cwiseSqrt\endlink();
166 </td>
167 <td>computes square root (\f$ \sqrt a_i \f$)</td>
168 <td class="code">
169 using <a href="http://en.cppreference.com/w/cpp/numeric/math/sqrt">std::sqrt</a>; \n
170 sqrt(a[i]);</td>
171 <td>SSE2, AVX (f,d)</td>
172</tr>
173<tr>
174 <td class="code">
175 \anchor cwisetable_rsqrt
176 a.\link ArrayBase::rsqrt rsqrt\endlink(); \n
177 \link Eigen::rsqrt rsqrt\endlink(a);
178 </td>
179 <td><a href="https://en.wikipedia.org/wiki/Fast_inverse_square_root">reciprocal square root</a> (\f$ 1/{\sqrt a_i} \f$)</td>
180 <td class="code">
181 using <a href="http://en.cppreference.com/w/cpp/numeric/math/sqrt">std::sqrt</a>; \n
182 1/sqrt(a[i]); \n
183 </td>
184 <td>SSE2, AVX, AltiVec, ZVector (f,d)\n
185 (approx + 1 Newton iteration)</td>
186</tr>
187<tr>
188 <td class="code">
189 \anchor cwisetable_square
190 a.\link ArrayBase::square square\endlink(); \n
191 \link Eigen::square square\endlink(a);
192 </td>
193 <td>computes square power (\f$ a_i^2 \f$)</td>
194 <td class="code">
195 a[i]*a[i]</td>
196 <td>All (i32,f,d,cf,cd)</td>
197</tr>
198<tr>
199 <td class="code">
200 \anchor cwisetable_cube
201 a.\link ArrayBase::cube cube\endlink(); \n
202 \link Eigen::cube cube\endlink(a);
203 </td>
204 <td>computes cubic power (\f$ a_i^3 \f$)</td>
205 <td class="code">
206 a[i]*a[i]*a[i]</td>
207 <td>All (i32,f,d,cf,cd)</td>
208</tr>
209<tr>
210 <td class="code">
211 \anchor cwisetable_abs2
212 a.\link ArrayBase::abs2 abs2\endlink(); \n
213 \link Eigen::abs2 abs2\endlink(a);\n
214 m.\link MatrixBase::cwiseAbs2 cwiseAbs2\endlink();
215 </td>
216 <td>computes the squared absolute value (\f$ |a_i|^2 \f$)</td>
217 <td class="code">
218 real: a[i]*a[i] \n
219 complex: real(a[i])*real(a[i]) \n
220 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; + imag(a[i])*imag(a[i])</td>
221 <td>All (i32,f,d)</td>
222</tr>
223<tr>
224<th colspan="4">Trigonometric functions</th>
225</tr>
226<tr>
227 <td class="code">
228 \anchor cwisetable_sin
229 a.\link ArrayBase::sin sin\endlink(); \n
230 \link Eigen::sin sin\endlink(a);
231 </td>
232 <td>computes sine</td>
233 <td class="code">
234 using <a href="http://en.cppreference.com/w/cpp/numeric/math/sin">std::sin</a>; \n
235 sin(a[i]);</td>
236 <td>SSE2, AVX (f)</td>
237</tr>
238<tr>
239 <td class="code">
240 \anchor cwisetable_cos
241 a.\link ArrayBase::cos cos\endlink(); \n
242 \link Eigen::cos cos\endlink(a);
243 </td>
244 <td>computes cosine</td>
245 <td class="code">
246 using <a href="http://en.cppreference.com/w/cpp/numeric/math/cos">std::cos</a>; \n
247 cos(a[i]);</td>
248 <td>SSE2, AVX (f)</td>
249</tr>
250<tr>
251 <td class="code">
252 \anchor cwisetable_tan
253 a.\link ArrayBase::tan tan\endlink(); \n
254 \link Eigen::tan tan\endlink(a);
255 </td>
256 <td>computes tangent</td>
257 <td class="code">
258 using <a href="http://en.cppreference.com/w/cpp/numeric/math/tan">std::tan</a>; \n
259 tan(a[i]);</td>
260 <td></td>
261</tr>
262<tr>
263 <td class="code">
264 \anchor cwisetable_asin
265 a.\link ArrayBase::asin asin\endlink(); \n
266 \link Eigen::asin asin\endlink(a);
267 </td>
268 <td>computes arc sine (\f$ \sin^{-1} a_i \f$)</td>
269 <td class="code">
270 using <a href="http://en.cppreference.com/w/cpp/numeric/math/asin">std::asin</a>; \n
271 asin(a[i]);</td>
272 <td></td>
273</tr>
274<tr>
275 <td class="code">
276 \anchor cwisetable_acos
277 a.\link ArrayBase::acos acos\endlink(); \n
278 \link Eigen::acos acos\endlink(a);
279 </td>
280 <td>computes arc cosine (\f$ \cos^{-1} a_i \f$)</td>
281 <td class="code">
282 using <a href="http://en.cppreference.com/w/cpp/numeric/math/acos">std::acos</a>; \n
283 acos(a[i]);</td>
284 <td></td>
285</tr>
286<tr>
287 <td class="code">
288 \anchor cwisetable_atan
289 a.\link ArrayBase::atan atan\endlink(); \n
290 \link Eigen::atan atan\endlink(a);
291 </td>
292 <td>computes arc tangent (\f$ \tan^{-1} a_i \f$)</td>
293 <td class="code">
294 using <a href="http://en.cppreference.com/w/cpp/numeric/math/atan">std::atan</a>; \n
295 atan(a[i]);</td>
296 <td></td>
297</tr>
298<tr>
299<th colspan="4">Hyperbolic functions</th>
300</tr>
301<tr>
302 <td class="code">
303 \anchor cwisetable_sinh
304 a.\link ArrayBase::sinh sinh\endlink(); \n
305 \link Eigen::sinh sinh\endlink(a);
306 </td>
307 <td>computes hyperbolic sine</td>
308 <td class="code">
309 using <a href="http://en.cppreference.com/w/cpp/numeric/math/sinh">std::sinh</a>; \n
310 sinh(a[i]);</td>
311 <td></td>
312</tr>
313<tr>
314 <td class="code">
315 \anchor cwisetable_cosh
316 a.\link ArrayBase::cosh cohs\endlink(); \n
317 \link Eigen::cosh cosh\endlink(a);
318 </td>
319 <td>computes hyperbolic cosine</td>
320 <td class="code">
321 using <a href="http://en.cppreference.com/w/cpp/numeric/math/cosh">std::cosh</a>; \n
322 cosh(a[i]);</td>
323 <td></td>
324</tr>
325<tr>
326 <td class="code">
327 \anchor cwisetable_tanh
328 a.\link ArrayBase::tanh tanh\endlink(); \n
329 \link Eigen::tanh tanh\endlink(a);
330 </td>
331 <td>computes hyperbolic tangent</td>
332 <td class="code">
333 using <a href="http://en.cppreference.com/w/cpp/numeric/math/tanh">std::tanh</a>; \n
334 tanh(a[i]);</td>
335 <td></td>
336</tr>
337<tr>
Austin Schuhc55b0172022-02-20 17:52:35 -0800338 <td class="code">
339 \anchor cwisetable_asinh
340 a.\link ArrayBase::asinh asinh\endlink(); \n
341 \link Eigen::asinh asinh\endlink(a);
342 </td>
343 <td>computes inverse hyperbolic sine</td>
344 <td class="code">
345 using <a href="http://en.cppreference.com/w/cpp/numeric/math/asinh">std::asinh</a>; \n
346 asinh(a[i]);</td>
347 <td></td>
348</tr>
349<tr>
350 <td class="code">
351 \anchor cwisetable_acosh
352 a.\link ArrayBase::acosh cohs\endlink(); \n
353 \link Eigen::acosh acosh\endlink(a);
354 </td>
355 <td>computes hyperbolic cosine</td>
356 <td class="code">
357 using <a href="http://en.cppreference.com/w/cpp/numeric/math/acosh">std::acosh</a>; \n
358 acosh(a[i]);</td>
359 <td></td>
360</tr>
361<tr>
362 <td class="code">
363 \anchor cwisetable_atanh
364 a.\link ArrayBase::atanh atanh\endlink(); \n
365 \link Eigen::atanh atanh\endlink(a);
366 </td>
367 <td>computes hyperbolic tangent</td>
368 <td class="code">
369 using <a href="http://en.cppreference.com/w/cpp/numeric/math/atanh">std::atanh</a>; \n
370 atanh(a[i]);</td>
371 <td></td>
372</tr>
373<tr>
Austin Schuh189376f2018-12-20 22:11:15 +1100374<th colspan="4">Nearest integer floating point operations</th>
375</tr>
376<tr>
377 <td class="code">
378 \anchor cwisetable_ceil
379 a.\link ArrayBase::ceil ceil\endlink(); \n
380 \link Eigen::ceil ceil\endlink(a);
381 </td>
382 <td>nearest integer not less than the given value</td>
383 <td class="code">
384 using <a href="http://en.cppreference.com/w/cpp/numeric/math/ceil">std::ceil</a>; \n
385 ceil(a[i]);</td>
386 <td>SSE4,AVX,ZVector (f,d)</td>
387</tr>
388<tr>
389 <td class="code">
390 \anchor cwisetable_floor
391 a.\link ArrayBase::floor floor\endlink(); \n
392 \link Eigen::floor floor\endlink(a);
393 </td>
394 <td>nearest integer not greater than the given value</td>
395 <td class="code">
396 using <a href="http://en.cppreference.com/w/cpp/numeric/math/floor">std::floor</a>; \n
397 floor(a[i]);</td>
398 <td>SSE4,AVX,ZVector (f,d)</td>
399</tr>
400<tr>
401 <td class="code">
402 \anchor cwisetable_round
403 a.\link ArrayBase::round round\endlink(); \n
404 \link Eigen::round round\endlink(a);
405 </td>
406 <td>nearest integer, \n rounding away from zero in halfway cases</td>
407 <td>built-in generic implementation \n based on \c floor and \c ceil,\n
408 plus \c using <a href="http://en.cppreference.com/w/cpp/numeric/math/round">\c std::round </a>; \cpp11</td>
409 <td>SSE4,AVX,ZVector (f,d)</td>
410</tr>
411<tr>
Austin Schuhc55b0172022-02-20 17:52:35 -0800412 <td class="code">
413 \anchor cwisetable_rint
414 a.\link ArrayBase::rint rint\endlink(); \n
415 \link Eigen::rint rint\endlink(a);
416 </td>
417 <td>nearest integer, \n rounding to nearest even in halfway cases</td>
418 <td>built-in generic implementation using <a href="http://en.cppreference.com/w/cpp/numeric/math/rint">\c std::rint </a>; \cpp11
419 or <a href="http://en.cppreference.com/w/c/numeric/math/rint">\c rintf </a>; </td>
420 <td>SSE4,AVX (f,d)</td>
421</tr>
422<tr>
Austin Schuh189376f2018-12-20 22:11:15 +1100423<th colspan="4">Floating point manipulation functions</th>
424</tr>
425<tr>
426<th colspan="4">Classification and comparison</th>
427</tr>
428<tr>
429 <td class="code">
430 \anchor cwisetable_isfinite
431 a.\link ArrayBase::isFinite isFinite\endlink(); \n
432 \link Eigen::isfinite isfinite\endlink(a);
433 </td>
434 <td>checks if the given number has finite value</td>
435 <td>built-in generic implementation,\n
436 plus \c using <a href="http://en.cppreference.com/w/cpp/numeric/math/isfinite">\c std::isfinite </a>; \cpp11</td>
437 <td></td>
438</tr>
439<tr>
440 <td class="code">
441 \anchor cwisetable_isinf
442 a.\link ArrayBase::isInf isInf\endlink(); \n
443 \link Eigen::isinf isinf\endlink(a);
444 </td>
445 <td>checks if the given number is infinite</td>
446 <td>built-in generic implementation,\n
447 plus \c using <a href="http://en.cppreference.com/w/cpp/numeric/math/isinf">\c std::isinf </a>; \cpp11</td>
448 <td></td>
449</tr>
450<tr>
451 <td class="code">
452 \anchor cwisetable_isnan
453 a.\link ArrayBase::isNaN isNaN\endlink(); \n
454 \link Eigen::isnan isnan\endlink(a);
455 </td>
456 <td>checks if the given number is not a number</td>
457 <td>built-in generic implementation,\n
458 plus \c using <a href="http://en.cppreference.com/w/cpp/numeric/math/isnan">\c std::isnan </a>; \cpp11</td>
459 <td></td>
460</tr>
461<tr>
462<th colspan="4">Error and gamma functions</th>
463</tr>
464<tr> <td colspan="4"> Require \c \#include \c <unsupported/Eigen/SpecialFunctions> </td></tr>
465<tr>
466 <td class="code">
467 \anchor cwisetable_erf
468 a.\link ArrayBase::erf erf\endlink(); \n
469 \link Eigen::erf erf\endlink(a);
470 </td>
471 <td>error function</td>
472 <td class="code">
473 using <a href="http://en.cppreference.com/w/cpp/numeric/math/erf">std::erf</a>; \cpp11 \n
474 erf(a[i]);
475 </td>
476 <td></td>
477</tr>
478<tr>
479 <td class="code">
480 \anchor cwisetable_erfc
481 a.\link ArrayBase::erfc erfc\endlink(); \n
482 \link Eigen::erfc erfc\endlink(a);
483 </td>
484 <td>complementary error function</td>
485 <td class="code">
486 using <a href="http://en.cppreference.com/w/cpp/numeric/math/erfc">std::erfc</a>; \cpp11 \n
487 erfc(a[i]);
488 </td>
489 <td></td>
490</tr>
491<tr>
492 <td class="code">
493 \anchor cwisetable_lgamma
494 a.\link ArrayBase::lgamma lgamma\endlink(); \n
495 \link Eigen::lgamma lgamma\endlink(a);
496 </td>
497 <td>natural logarithm of the gamma function</td>
498 <td class="code">
499 using <a href="http://en.cppreference.com/w/cpp/numeric/math/lgamma">std::lgamma</a>; \cpp11 \n
500 lgamma(a[i]);
501 </td>
502 <td></td>
503</tr>
504<tr>
505 <td class="code">
506 \anchor cwisetable_digamma
507 a.\link ArrayBase::digamma digamma\endlink(); \n
508 \link Eigen::digamma digamma\endlink(a);
509 </td>
510 <td><a href="https://en.wikipedia.org/wiki/Digamma_function">logarithmic derivative of the gamma function</a></td>
511 <td>
512 built-in for float and double
513 </td>
514 <td></td>
515</tr>
516<tr>
517 <td class="code">
518 \anchor cwisetable_igamma
519 \link Eigen::igamma igamma\endlink(a,x);
520 </td>
521 <td><a href="https://en.wikipedia.org/wiki/Incomplete_gamma_function">lower incomplete gamma integral</a>
522 \n \f$ \gamma(a_i,x_i)= \frac{1}{|a_i|} \int_{0}^{x_i}e^{\text{-}t} t^{a_i-1} \mathrm{d} t \f$</td>
523 <td>
524 built-in for float and double,\n but requires \cpp11
525 </td>
526 <td></td>
527</tr>
528<tr>
529 <td class="code">
530 \anchor cwisetable_igammac
531 \link Eigen::igammac igammac\endlink(a,x);
532 </td>
533 <td><a href="https://en.wikipedia.org/wiki/Incomplete_gamma_function">upper incomplete gamma integral</a>
534 \n \f$ \Gamma(a_i,x_i) = \frac{1}{|a_i|} \int_{x_i}^{\infty}e^{\text{-}t} t^{a_i-1} \mathrm{d} t \f$</td>
535 <td>
536 built-in for float and double,\n but requires \cpp11
537 </td>
538 <td></td>
539</tr>
540<tr>
541<th colspan="4">Special functions</th>
542</tr>
543<tr> <td colspan="4"> Require \c \#include \c <unsupported/Eigen/SpecialFunctions> </td></tr>
544<tr>
545 <td class="code">
546 \anchor cwisetable_polygamma
547 \link Eigen::polygamma polygamma\endlink(n,x);
548 </td>
549 <td><a href="https://en.wikipedia.org/wiki/Polygamma_function">n-th derivative of digamma at x</a></td>
550 <td>
551 built-in generic based on\n <a href="#cwisetable_lgamma">\c lgamma </a>,
552 <a href="#cwisetable_digamma"> \c digamma </a>
553 and <a href="#cwisetable_zeta">\c zeta </a>.
554 </td>
555 <td></td>
556</tr>
557<tr>
558 <td class="code">
559 \anchor cwisetable_betainc
560 \link Eigen::betainc betainc\endlink(a,b,x);
561 </td>
562 <td><a href="https://en.wikipedia.org/wiki/Beta_function#Incomplete_beta_function">Incomplete beta function</a></td>
563 <td>
564 built-in for float and double,\n but requires \cpp11
565 </td>
566 <td></td>
567</tr>
568<tr>
569 <td class="code">
570 \anchor cwisetable_zeta
Austin Schuhc55b0172022-02-20 17:52:35 -0800571 \link Eigen::zeta zeta\endlink(a,b); \n
572 a.\link ArrayBase::zeta zeta\endlink(b);
Austin Schuh189376f2018-12-20 22:11:15 +1100573 </td>
574 <td><a href="https://en.wikipedia.org/wiki/Hurwitz_zeta_function">Hurwitz zeta function</a>
575 \n \f$ \zeta(a_i,b_i)=\sum_{k=0}^{\infty}(b_i+k)^{\text{-}a_i} \f$</td>
576 <td>
577 built-in for float and double
578 </td>
579 <td></td>
580</tr>
Austin Schuhc55b0172022-02-20 17:52:35 -0800581<tr>
582 <td class="code">
583 \anchor cwisetable_ndtri
584 a.\link ArrayBase::ndtri ndtri\endlink(); \n
585 \link Eigen::ndtri ndtri\endlink(a);
586 </td>
587 <td>Inverse of the CDF of the Normal distribution function</td>
588 <td>
589 built-in for float and double
590 </td>
591 <td></td>
592</tr>
Austin Schuh189376f2018-12-20 22:11:15 +1100593<tr><td colspan="4"></td></tr>
594</table>
595
596\n
597
598*/
599
600}