Skip to main content
Ctrl+K

XlCalcNet Documentation

  • Preface

Getting started

  • Setup and general usage
    • Setting up XlCalcNet
    • General and user interface functions
    • Calling Python from C#
    • Using XlCalcNet with spreadsheet formulas
    • Mathematical functions based on Mpmath, Gmpy2 and Python-Flint (only Python)
    • Mathematical functions in fixed precision
    • Mathematical functions based on XlCalcNet2
    • A quick look at Numpy
    • A quick look at Matplotlib and related libraries
    • A quick look at Pandas and Xlxswriter
    • A quick look at Scipy
    • A quick look at R, RStudio and Rpy2
  • Basic floating point functions
    • Operator overloading, general real functions
    • Machine constants, general
    • Properties of numbers
    • Integer related functions
    • Floating point functions for real numbers
    • Fraction and remainder related functions
    • Functions related to mantissa width and exponent range
    • Mathematical Constants
  • Elementary scalar functions (real and complex)
    • Complex components
    • Roots and quadratic, cubic, and quartic equations
    • Exponential and related functions
    • Logarithms and related functions
    • Power functions
    • Trigonometric functions, in radians
    • Trigonometric functions, in multiples of \(\pi\)
    • Hyperbolic functions
    • Inverse trigonometric functions, in radians
    • Inverse hyperbolic functions
    • Factorials, Gamma and related functions
    • Miscellaneous functions
  • Statistical Distributions
    • Introduction to random variables and distributions
    • Base class for univariate distributions
    • Base class for continuous univariate distributions
    • Base class for discrete univariate distributions
    • Closed form distributions, based on elementary functions
      • Boost: Arcsine Distribution
      • Boost: Cauchy distribution
      • Boost: Exponential distribution
      • Boost: Gumbel (Generalized Extreme Value distribution Type-I) distribution
      • Boost: Hyperexponential Distribution
      • !!!Boost: Kumaraswamy distribution
      • Boost: Laplace distribution
      • Boost: Logistic distribution
      • Boost: Pareto distribution
      • Boost: Rayleigh distribution
      • Boost: Triangular Distribution
      • Boost: Uniform distribution
      • Boost: Weibull (Minimum-Type-III) distribution
      • Dagum (Burr Type III) distribution
      • Fisk (log-logistic) distribution
      • Fréchet (Maximum/Minimum-Type-II or Inverse Weibull) distribution
      • Generalized Extreme Value (Maximum) or GEV distribution
      • Generalized Pareto distribution
      • Gompertz-Makeham distribution
      • Lomax distribution
      • Shifted Gompertz distribution
      • Singh-Maddala (Burr Type XII) distribution
    • Closed form distributions, based on the error function
      • !!!Boost: Lévy distribution
      • Boost: Lognormal (Johnson \(S_L\)) distribution
      • !!!Boost: Moyal Distribution
      • Boost: Normal (Johnson \(S_N\)) distribution
      • Boost: Skew normal Distribution
      • Boost: Wald (or Inverse Gaussian) distribution
      • Birnbaum-Saunders Distribution
      • Exponentially Modified Gaussian (EMG) distribution
      • Folded normal distribution
      • Half-normal distribution
      • Johnson \(S_B\) distribution
      • Johnson \(S_U\) distribution
      • Normal maximum distribution, \(\rho_{ij, i \ne j} = 0\)
      • Normal maximum modulus distribution, \(\rho_{ij, i \ne j} = 0\)
      • Sinh-arcsinh normal distribution
      • Truncated normal distribution
    • Closed form distributions, based on the incomplete gamma function
      • !!!Boost: Chi Distribution
      • Boost: Chi-Squared distribution
      • Boost: Gamma (Pearson Type III, Erlang) distribution
      • Boost: Inverse chisquared distribution
      • Boost: Inverse Gamma (Pearson Type V) distribution
      • !!!Boost: Maxwell Distribution
      • !!!Boost: Nakagami distribution
      • Amoroso distribution
      • Distribution of the logarithm of a \(\chi^2\) random variable
      • Hypoexponential (Generalized Erlang) Distribution
      • Lindley distribution (generalized)
      • Skew exponential power distribution
      • Stacy (generalized gamma) distribution
    • Closed form distributions, based on the incomplete beta function
      • Boost: Beta (Pearson Type I and II) distribution
      • Boost: Central Fisher F distribution
      • Boost: Student \(t\) (Pearson Type VII) distribution
      • Distribution of the negative logarithm of a beta variable
      • Beta-prime (Pearson Type VI) distribution
      • Generalized Beta (Type 1) distribution
      • Generalized Beta (Type 2) distribution
      • Generalized logistic distribution (JKB Types I - IV)
      • Generalized beta-exponential distribution
      • Feller-Pareto distribution
      • Fisher \(z\) distribution
      • Skew t-distribution (Jones)
      • Pearson’s rho distribution (under \(H_0\))
    • Noncentral distributions
      • Boost: Noncentral \(\chi^2\) distribution
      • Boost: Noncentral Student \(t\) distribution
      • Boost: Noncentral Fisher \(F\) distribution
      • Boost: Noncentral Beta Type I distribution
      • Noncentral Chi distribution
      • Rice (Nakagami-n) distribution
      • Noncentral distribution of the sample correlation coefficient
      • Distribution of the logarithm of a noncentral Beta Type II variable
      • Noncentral distribution (Type I) of Fisher’s \(R^2\)
      • Distribution of the logarithm of a noncentral Fisher \(1-R^2\) variable
      • Doubly non-central Student \(t\) distribution
      • Doubly non-central Fisher \(F\) distribution
    • Distributions related to multiple comparisons of means
      • Overview and literature
      • Normal maximum distribution, \(\rho_{ij, i \ne j} = \rho\)
      • Normal maximum modulus distribution, \(\rho_{ij, i \ne j} = \rho\)
      • Normal maximum distribution, \(\rho_{ij, i \ne j} = \lambda_i \lambda_j\)
      • Normal maximum modulus distribution, \(\rho_{ij, i \ne j} = \lambda_i \lambda_j\)
      • Normal range distribution
      • Studentized maximum distribution
      • Studentized maximum modulus distribution
      • Distribution of Dunnett’s \(t\), one-sided
      • Distribution of Dunnett’s \(t\), two-sided
      • Nair’s \(t\)-distribution
      • Halperin’s \(t\)-distribution
      • Nelson’s \(h\)-distribution
      • Studentized range distribution
    • Distributions related to multivariate statistical analysis
      • Distribution of the sum of the negative logarithms of independent beta variables
      • Distribution of the product of independent beta variables
      • Distribution of Wilks’ \(\Lambda\)
      • Distribution of Wilks’ \(L_{vc}\)
      • Distribution of Wilks’ \(L_{vcm}\)
      • Distribution of Wilks’ test of independence of \(p\) variates
      • Distribution of Wilks’ test of independence of \(k\) groups of variates
      • Distribution of Mauchly’s test of sphericity vs general structure
      • Distribution of Box’s test of equality of covariance matrices, equal sample sizes
      • Distribution of Box’s test of equality of k covariance matrices, unequal sample sizes
      • Distribution of Box’s test for same multivariate normal distributions, unequal sample sizes
      • Distribution of the modified likelihood ratio test (LRT) for a given covariance matrix
      • Distribution of the modified likelihood ratio test (LRT) for a given covariance matrix and mean vector
      • Central distribution of Roy’s largest root
      • Central distribution of Pillai’s \(V\)
      • Central distribution of Hotelling’s \(T^2\)
      • Noncentral Distribution of Wilks’ \(\Lambda\): MANOVA
      • Noncentral Distribution of Wilks’ \(\Lambda\): Canonical Correlation
    • Miscellaneous continuous distributions
      • Boost: Kolmogorov-Smirnov distribution (limiting form)
      • Boost: Landau Distribution
      • Boost: Holtsmark distribution
      • Boost: Map-Airy distribution
      • Boost: Saspoint5 distribution
      • Lévy alpha-stable distribution
      • Pearson Type IV distribution
      • Meixner distribution
      • Voigt Profile Distribution
      • Wrapped Cauchy distribution
      • Wrapped normal distribution
      • Von Mises distribution
      • Generalized inverse Gaussian distribution
      • Harmonic distribution
      • Halphen A distribution
      • Halphen B distribution
      • Halphen IB distribution
      • Generalized hyperbolic distribution
      • Hyperbolic distribution
      • Variance-gamma distribution
    • Elementary discrete (lattice) distributions
      • Boost: Bernoulli distribution
      • Boost: Geometric distribution
      • Boost: Poisson distribution
      • Boost: Binomial distribution
      • Boost: Negative binomial distribution
      • Boost: Classical hypergeometric distribution
      • Log-series distribution
      • Zeta distribution
      • Skellam distribution
      • Delaporte distribution
      • Beta-Poisson distribution (Quinkert)
      • Beta-binomial distribution
      • Beta-negative binomial distribution (Waring)
      • Negative hypergeometric distribution
      • Pólya-Eggenberger distribution
      • General hypergeometric distribution
      • Noncentral hypergeometric distribution, Fisher alternatives
    • Discrete (lattice) distributions related to (stratified) rank tests
      • Wilcoxon signed rank T distribution, continuous data
      • Noncentral Wilcoxon signed rank T distribution, Bennett alternatives
      • Mann-Whitney U distribution, continuous data
      • Noncentral Mann-Whitney U distribution, Lehmann alternatives
      • Noncentral Mann-Whitney U distribution, Milton alternatives
      • Kendall’s tau distribution, continuous data
      • Jonckheere-Terpsta \(T\) distribution, continuous data
      • Generalized Page \(L\) distribution, continuous data
      • Noncentral generalized Page \(L\) distribution, Milton alternatives
    • Discrete (non-lattice) distributions related to rank tests
      • Cochran-Friedman-Quade distribution
      • Kruskal-Wallis distribution
  • Numerical calculus
    • Introduction
    • DAMath: Numerical Rootfinding and Minimization
    • Boost/Math: Root Finding and Minimization Algorithms
    • Mpmath: Rootfinding and optimization
    • DAMath: Numerical Quadrature
    • Boost/Math: Numerical integration
    • Mpmath: Numerical integration
    • Mpmath: Numerical inverse Laplace transform
    • Boost/Odeint: Ordinary differential equations
    • Mpmath: Numerical differentiation
    • Mpmath: Asymptotic expansions
    • Mpmath: Function approximation
    • Mpmath: Sums, products, limits and extrapolation
    • Mpmath: Number identification
    • Mpmath: Polynomials
    • Eigen: Polynomials
    • Eigen/MinPack: non linear optimization
    • Eigen/CppOptLib: multidimensional optimization
    • Flint/Functions for polynomials
    • Flint/Power series and Taylor arithmetic
    • Flint/Verified numerical differentiation
    • Flint/Verified numerical integration
  • Eigen: Dense and Sparse Matrices
    • Creating scalars and matrices
    • Read-only properties: information about a matrix
    • Accessing and setting parts of a matrix
    • Changing the shape of a matrix and/or the order of coefficients
    • Basic arithmetic operations
    • Descriptive Statistics
    • Standard decompositions and linear solving
    • Singular Value and Eigen (selfadjoint) decompositions
    • Eigen decompositions of general square matrices
    • Eigen: Functions of matrix argument
    • Eigen: Fast Fourier Transform
  • Numpy: use with multiprecision data types
    • Numpy array creation from shape or value
    • Numpy array creation from existing data
    • Building special arrays for numerical work
    • Numpy indexing
    • Numpy basic array manipulation routines
    • Numpy array manipulation: Transpose-like operations
    • Numpy array manipulation: Changing number of dimensions
    • Numpy array manipulation: Joining arrays
    • Numpy array manipulation: Splitting and tiling arrays
    • Numpy array manipulation: Adding and removing elements
    • Numpy array manipulation: Rearranging elements
    • Numpy array manipulation: Sorting
    • Numpy array manipulation: Searching
    • Numpy mathematical functions: Sums, products, differences
    • Numpy mathematical functions: Extrema Finding
    • Numpy mathematical functions: Arithmetic operations, elementwise
    • Numpy mathematical functions: Averages and variances
    • Numpy mathematical functions: Matrix and vector products
    • Numpy logical functions: Truth value testing
    • Numpy mathematical functions: Integer and fractional
    • Numpy mathematical functions: Miscellaneous
    • Summary and examples: Numpy utility functions
    • Arithmetic operations with scalars and iterables
    • Numerical transformations and descriptive statistics
    • Standard decompositions and linear solving
    • Singular Value and Eigen decompositions
    • Analytic functions of a matrix
    • Discrete Fourier transform (DFT)
    • Flint/Functions for matrices

Special Functions

  • Elliptic functions and related
    • Carlson symmetric elliptic integrals
    • Legendre elliptic integrals (elliptic parameter \(m\))
    • Legendre elliptic integrals (elliptic modulus \(k\)), and related functions
    • Jacobi elliptic functions
    • Jacobi theta functions and related functions
    • Conversions of parameters of Weierstrass \(\wp\)
    • Weierstrass elliptic functions, in terms of elliptic period ratio \(\tau\)
    • Modular forms, in terms of half-period \(\omega_1\) and elliptic period ratio \(\tau\)
  • Lerch’s phi and related
    • Lerch’s transcendent and Lerch’s zeta
    • Polygamma and related functions
    • Polylogarithm and related functions
    • Hurwitz zeta and related functions
    • Riemann zeta function, and related functions
  • Hypergeometric function \(\,_0F_1\) and related
    • Hypergeometric Limit Function \(\,_0F_1\)
    • Bessel functions
    • Modified Bessel functions
    • Spherical Bessel functions
    • Modified spherical Bessel functions
    • Hankel functions
    • Airy functions
    • Kelvin functions
  • Hypergeometric function \(\,_1F_1\) and related
    • Hypergeometric Functions \(\,_1F_1\) (Kummer) and \(U\) (Tricomi)
    • Incomplete gamma functions
    • Coulomb, Whittaker and parabolic cylinder function
    • Error function and related functions
    • Exponential integrals, and related functions
  • Hypergeometric functions \(\,_2F_1\) and \(\,_1F_2\) (and related functions)
    • Gauss Hypergeometric Function \(\,_2F_1\)
    • Chebyshev, Gegenbauer and Jacobi polynomials
    • Legendre polynomials and related
    • Incomplete beta functions
    • Hypergeometric function \({}_1F_2\)
    • Scorer functions
    • Struve functions
    • Anger, Weber and Lommel functions

Supporting Functions

  • Algebra with random variables
    • Probability density function (pdf)
    • Probability mass function (pmf)
    • Cumulative distribution function (cdf)
    • Quantile function
    • Characteristic function
    • Moment generating function
    • Cumulant generating function
    • Probability generating function
    • Factorial Moments
    • Raw Moments
    • Central Moments
    • Cumulants
  • Series and integrals
    • Finite series algorithms for selected distributions
    • Infinite series algorithms for selected functions and distributions
    • Finite series for lattice distributions, based on factorial moments
    • Efficient integration of bell-shaped functions
    • Verified numerical integration
  • Pmf vectors
    • Basic discrete (lattice) distribution functions
    • Discrete (lattice) distribution functions related to (stratified) rank tests
    • Discrete (non-lattice) distribution functions related to rank tests
  • Fast approximations
    • Approximations based on the normal distribution
    • Approximations based on the chi-squared distribution
    • Approximations based on the central \(t\), \(F\) or beta distribution
    • Approximations based on the noncentral chi-squared distribution
    • Approximations based on the noncentral F or beta distribution
    • Approximations based on hypergeometric functions of scalar argument

Gallery of Plots

  • Visualisation of datasets
    • Bar Charts
    • Line and lollipop charts
    • Area Plots
    • Boxplot, Violinplot and Raincloud plot
    • Correlation and regression
    • Financial plots (requires mplfinance)
    • Geographic data (requires cartopy)
    • Geographic data (requires geopandas)
    • Parts of a whole
    • Arcplots, dendrograms, heatmaps and clustermaps
    • PlotTable
    • Flow and connections
    • Circular plots and flows
    • Network data (requires networkx)
  • Visualisation of functions and curves (2D)
    • Introduction to 2D functions and curves
    • Basic curves
    • Spirals
    • Decorative curves
    • General curve families
    • Field lines
    • Contours
    • Complex functions rendered as contours
    • Streams, barbs and quivers (some require cartopy)
  • Bitmaps
    • Fractals: introduction
    • Fractals related to the Mandelbrot set
    • Fractals related to the Julia set
    • Newton Fractals
    • Domain coloring options
    • Domain coloring: Examples part 1
  • Matplotlib 3D Graphics
    • Introduction
    • Matplotlib: 3D Graphics, part 2
    • S3dlib: Basic geometric figures
    • S3dlib: Real functions
    • S3dlib: Parametric Surfaces
    • S3dlib: Image mapping and clipping
    • S3dlib: Edge-to-edge surface coloring
    • S3dlib: Decorative parametric surfaces
    • S3dlib: Geometric and color datagrid mapping (requires scipy)
    • S3dlib: Implicit surfaces (requires scikit-image)
  • Plotly
    • General surface plots in 3D
    • Geographical plots
    • Sankey plots

Interactive 3D Wpf Plots

  • Wpf: Altitude surfaces in 3D, real and complex functions
    • Special techniques for height surfaces, real and complex functions
    • Scatterplots and building 3D scenes
    • Height plots of general bivariate real functions
  • Wpf: Parametric surfaces
    • Surfaces of translation
    • Surfaces of revolution: spheres and related
    • Generalisations of common surfaces
    • Minimal surfaces
    • Nonorientable (one-sided) Surfaces
    • Decorative parametric surfaces
  • Wpf: Path surfaces in 3D
    • Introduction to path surfaces
    • Functions with real input and complex results
    • Characteristic functions of statistical distributions
    • Helices and related curves traced on cylinders, cones and spheres
    • Coil springs
    • General knots
    • Torus knots
    • Lissajous knots
    • Polynomial knots
  • Wpf: Built-in 3D objects
    • Builtin solids with support for textures
    • Builtin solids without support for textures
    • Platonic solids, and related solids

User library: numerical

  • Additional Classes
    • User defined functions based on multiple precision arithmetic (Python)
    • User defined functions based on fixed precision arithmetic (C#)
    • User defined functions based on arbitrary precision arithmetic (C#)
    • Scalar functions
  • Distribution functions
    • Distributions related to multiple comparisons of means
    • Discrete (lattice) distribution functions related to (stratified) rank tests
    • Discrete (non-lattice) distribution functions related to rank tests
  • Inferential statistics
    • Basic classical statistical tests (stratified)
    • Basic classical statistical tests for 2 independent samples (stratified)
    • Basic classical statistical tests for 2 correlated samples (stratified)
    • Analysis of variance (ANOVA), orthogonal polynomials, and analysis of means (AOM)
    • Multiple comparisons of means
    • Nonparametric statistical tests, 1 or 2 samples
    • Nonparametric statistical tests, k samples
    • Multivariate statistical tests
  • Addditional elementary functions (real arguments, double precision)
    • Additional root, exponential, logarithmic and power functions
    • Additional Trigonometric functions (real arguments only)
    • Additional real error functions (real arguments only)
    • Additional real gamma functions (real arguments only)
    • Additional real incomplete gamma functions (real arguments only)
  • Addditional special functions (real arguments, double precision)
    • Conversions of parameters of elliptic functions
    • Additional elliptic integrals
    • Bulirsch elliptic integrals
    • Maple style elliptic integrals
    • Jacobi theta functions at \(x=0\) for \(0 \le q <1\)
    • Inverse Jacobi elliptic functions
    • Lemniscate functions
    • Neville theta functions
    • Polygamma, and related functions
    • Polylogarithm, and related functions
    • Riemann zeta, and related functions
    • Bessel functions of integer order
    • Modified Bessel functions of integer order
    • Integrals of zero-order Bessel functions
    • Kelvin functions of order 0
    • Synchrotron functions
    • Error function, and related functions
    • Exponential integrals, and related functions
    • Coulomb, Whittaker and parabolic cylinder function
    • Hypergeometric pFq, and related functions
    • Miscellaneous functions
  • Addditional special functions (complex arguments, double precision)
    • Conversions of parameters of Weierstrass \(\wp\)
    • Weierstrass elliptic functions, in terms of (real) lattice invariants \(g_2, g_3\)
    • Weierstrass elliptic functions, in terms of (real) lattice roots \(e_1, e_2\)
    • Weierstrass elliptic functions, in terms of lattice half-periods \(\omega_1\) and \(\omega_2\)
  • Addditional special functions (Mpmath)
    • Mpmath: Conversions of parameters of elliptic functions
    • Related to Lerch’s phi
    • Additional numbertheoretic functions
    • Generalized hypergeometric functions
    • Appell Functions
    • Q Functions
    • Further generalizations of gamma and hypergeometric functions

Back matter

  • License and History
    • Mozilla Public License Version 2.0
    • History

Indices

  • General Index
  • .rst

Exponential and related functions

Contents

  • Exponential function \(\exp(x) = e^x\)
    • ctx.exp()
  • Auxiliary function \(\mathrm{expj}(x) = e^{ix}\)
    • ctx.expj()
  • Auxiliary function \(\mathrm{expjpi}(x) = e^{i \pi x} = (-1)^x\)
    • ctx.expjpi()
  • Exponential function with base \(10\), \(\mathrm{exp10}(x) = 10^z\)
    • ctx.exp10()
  • Exponential function with base \(2\), \(\mathrm{exp2}(x) = 2^x\)
    • ctx.exp2()
  • Auxiliary function \(\mathrm{expm1}(x) = e^x-1\)
    • ctx.expm1()
  • Auxiliary function \(\mathrm{exp10m1}(x) = 10^x - 1\)
    • ctx.exp10m1()
  • Auxiliary function \(\mathrm{exp2m1}(x) = 2^x - 1\)
    • ctx.exp2m1()

Exponential and related functions#

Exponential function \(\exp(x) = e^x\)#

ctx.exp(z)#

where ctx is ctx_pm (see Python contexts for details), ctx53, ctxcpp, ctxflint (see .NET contexts for details).

Returns \(\exp(x)\), the exponential function of \(x\). See also Wikipedia [1342], MathWorld [919], NIST [515], Ehrhardt [309] (4.2.34), Flint [804], Flint [794], Mpmath [573].

\[\exp(x) = \sum_{k = 0}^{\infty} \frac{x^k}{k!} = 1 + x + \frac{x^2}{2} + \frac{x^3}{6} + \frac{x^4}{24} + \cdots\]

For complex numbers, the exponential function satisfies

\[\exp(x + iy) = e^x (\cos y + i \sin y).\]

04a_TestExp_re \(\quad\) 04b_TestExp_im \(\quad\) 04c_TestExp_abs

Left figure: real part of the Exp function. Camera angles are \(\theta=135^\circ\) and \(\phi = -12^\circ\), camera radius is -2.

Middle figure: imaginary part of the Exp function. Camera angles are \(\theta=135^\circ\) and \(\phi = -12^\circ\), camera radius is -2.

Right figure: absolute value of the Exp function, with color-coded phase. Camera angles are \(\theta=135^\circ\) and \(\phi = -12^\circ\), camera radius is -2.

Note

The function is implemented as follows: mpm.exp and fpm.exp call mp.exp from mpmath; the functions ipm.exp and dpm.exp call iv.exp from mpmath; ; the functions gpm.exp and apm.exp call the matching functions from the Gmpy2 and Python-FLINT libraries; in single, double and extended precision, the C++ standard library is called for real and complex functions, except for math?53, where the damath functions are called; in fixed precision above extended, the matching Boost Multiprecision functions are called; mreal.exp calls the MPFR funcion mpfr_exp, and mcplx.exp calls the MPC funcion mpc_exp; ireal.exp calls the MPFI funcion mpfi_exp, and icplx.exp calls the MPFCI funcion mpfci_exp; dreal.exp calls the libmpdec function mpd_exp; otherwise the matching ctxflint.exp function is called.

An example in Python

>>> from xlcalcnet import xreal
>>> xreal.Exp(0.5)
xreal('5.2359877559829887307E-1')
>>> xreal.Exp('0.51')
xreal('5.3518479027559984754E-1')

An example in Visual Basic

>>> from xlcalcnet import Gpr
>>> Gpr.Exp(0.5)
GprT('5.2359877559829887307E-1')
>>> Gpr.Exp('0.51')
GprT('5.3518479027559984754E-1')

An example with real input:

>>> from xlcalcnet import fpm, mpm, ipm, dec, gmp, apm; ctxall = [fpm, mpm, ipm, dec, gmp, apm]
>>> res = []; x = 300
>>> for ctx in ctxall: ctx.dps = 40; res.append(ctx.exp(x));
>>> mpm.show(res)
fpm: 1.94242639524126E+130
mpm: 1.942426395241255936584208836017699219366e+130
ipm: 1.942426395241255936584208836017699219366e+130 (6.554e-40%)
dec: 1.942426395241255936584208836017699219366E+130
gmp: 1.942426395241255936584208836017699219366E+130
apm:[1.94242639524125593658420883601769921936619e+130 +/- 3.05e+89]

The following example with complex input shows that the relative error of the real or imaginary component can be quite high in certain situations, in this case input with the imaginary component near \(\pi/2\) (all digits of the dec output are correct):

>>> from xlcalcnet import fpm, mpm, ipm, dec, gmp, apm; ctxall = [fpm, mpm, ipm, dec, gmp, apm]
>>> res = []; z = '3 + 1.57079632679489j'
>>> for ctx in ctxall: ctx.dps = 20; res.append(ctx.exp(z));
>>> mpm.show(res)
fpm: 1.35026437749597E-13                      + 2.00855369231877E+01j
mpm: 1.3295080411583145903e-13                 + 2.0085536923187667741e+1j
ipm: 1.3295082112894299626e-13 (1.28e-5%)      + 2.0085536923187667741e+1 (6.747e-20%)j
dec: 1.3295081511495773724E-13                 + 2.0085536923187667741E+1j
gmp: 1.3295080411583145903E-13                 + 2.0085536923187667741E+01j
apm:[1.329508381420545334922e-13 +/- 3.41e-20] +[20.0855369231876677409 +/- 8.34e-20]j

An example with large input:

>>> mz = mpm.exp("-1.343E+46 - 2.34636E+34j")
>>> mpm.real(mz)
mpf('-1.0548252324045361275536e-5832574891960672045353076455441726603805350981')
>>> mpm.imag(mz)
mpf('+2.8351474115329724405596e-5832574891960672045353076455441726603805350981')

Evaluation is also supported for interval arguments with wide intervals:

>>> from xlcalcnet import dec, mpm, ipm, mp
>>> ipm.dps = 25
>>> ipm.exp([-mp.inf,0])
mpi('0.0', '1.0')
>>> ipm.exp([0,1])
mpi('1.0', '2.718281828459045235360287496')

Auxiliary function \(\mathrm{expj}(x) = e^{ix}\)#

ctx.expj(z)#

where ctx is math53, mathc53, ctxcpp, ctxflint.

Note: mathc53.Cis(z)

Returns \(e^{iz} = \cos(z) + i \sin(z)\). See also Wikipedia [1492], MathWorld [1094], Mpmath [752].

An example in Python

>>> from xlcalcnet import XComplex
>>> XComplex.Expj(0.5)
XComplex('5.2359877559829887307E-1')
>>> XComplex.Expj('0.1')
XComplex('5.3518479027559984754E-1')

An example in Visual Basic

>>> from xlcalcnet import Gpc
>>> Gpc.Expj(0.5)
Gpc('5.2359877559829887307E-1')
>>> Gpc.Expj('0.1')
Gpc('5.3518479027559984754E-1')

Returns \(e^{iz} = \cos(z) + i \sin(z)\). See also Wikipedia [1492], MathWorld [1094].

An example with real input (the output is always complex):

>>> from xlcalcnet import dec, mpm, ipm
>>> mpm.dps = 20; x = '1.57079632679489'
>>> \mathrm{d}x = dec.expj(x); mx = mpm.expj(x); ix = ipm.expj(x)
>>> mpm.show([\mathrm{d}x, mx, ix], aligned=True)
dec: 6.6192313216916397514E-15            + 1.0000000000000000000E+0j
mpm: 6.6192307740773877514e-15            + 1.0000000000000000000e+0j
ipm: 6.6192316211103350057e-15 (1.28e-5%) + 1.0000000000000000000e+0 (4.235e-20%)j

>>> from xlcalcnet import mpm, fpm, gmp, apm
>>> mpm.dps = 20; x = '1.57079632679489'
>>> fx = fpm.expj(x); gx = gmp.expj(x); ax = apm.expj(x)
>>> mpm.show([fx, gx, ax], aligned=True)
fpm: 6.7225704877083068166E-15            + 1.0000000000000000000E+00j
gmp: 6.6192307740773877514E-15            + 1.0000000000000000000E+00j
apm: 6.6192313299427593871e-15 (1.32e-5%) + 1.0000000000000000000e+0 (1.271e-19%)j

An example with complex input:

>>> from xlcalcnet import dec, mpm, ipm
>>> mpm.dps = 20; z = '3 + 1.57079632679489j'
>>> \mathrm{d}z = dec.expj(z); mz = mpm.expj(z); iz = ipm.expj(z)
>>> mpm.show([\mathrm{d}z, mz, iz], aligned=True)
dec: -2.0579922078373506286E-1               + 2.9335967490101498289E-2j
mpm: -2.0579922078373506286e-1               + 2.9335967490101498289e-2j
ipm: -2.0579922078373506286e-1 (-3.293e-18%) + 2.9335967490101498289e-2 (4.331e-18%)j

>>> from xlcalcnet import mpm, fpm, gmp, apm
>>> mpm.dps = 20; z = '3 + 1.57079632679489j'
>>> fz = fpm.expj(z); gz = gmp.expj(z); az = apm.expj(z)
>>> mpm.show([fz, gz, az], aligned=True)
fpm: -2.0579922078373558136E-01              + 2.9335967490101533262E-02j
gmp: -2.0579922078373506285E-01              + 2.9335967490101498289E-02j
apm: -2.0579922078373506284e-1 (-3.457e-17%) + 2.9335967490101498293e-2 (3.609e-17%)j

Examples from mpmath:

>>> from xlcalcnet import *
>>> mp.dps = 25; mp.pretty = True
>>> expj(0)
(1.0 + 0.0j)
>>> expj(-1)
(0.5403023058681397174009366 - 0.8414709848078965066525023j)
>>> expj(j)
(0.3678794411714423215955238 + 0.0j)
>>> expj(1+j)
(0.1987661103464129406288032 + 0.3095598756531121984439128j)

Auxiliary function \(\mathrm{expjpi}(x) = e^{i \pi x} = (-1)^x\)#

ctx.expjpi(z)#

where ctx is math53, mathc53, ctxcpp or ctxflint.

Returns \(e^{i \pi z} = \cos(\pi z) + i \sin(\pi z)\). See also Wikipedia [1492], MathWorld [1094], Flint [794], Mpmath [753].

Evaluation is accurate near zeros (see also cospi() and sinpi()):

An example in Python

>>> from xlcalcnet import XComplex
>>> XComplex.Expjpi(0.5)
XComplex('5.2359877559829887307E-1')
>>> XComplex.Expjpi('0.1')
XComplex('5.3518479027559984754E-1')

An example in Visual Basic

>>> from xlcalcnet import Gpc
>>> Gpc.Expjpi(0.5)
Gpc('5.2359877559829887307E-1')
>>> Gpc.Expjpi('0.1')
Gpc('5.3518479027559984754E-1')

An example with real input (the output is always complex):

>>> from xlcalcnet import dec, mpm, ipm
>>> mpm.dps = 20; x = '1.0'
>>> \mathrm{d}x = dec.expjpi(x); mx = mpm.expjpi(x); ix = ipm.expjpi(x)
>>> mpm.show([\mathrm{d}x, mx, ix], aligned=True)
dec: -1.0000000000000000000E+0               - 3.7356616720497115803E-20j
mpm: -1.0000000000000000000e+0               + 0.0e+0j
ipm: -1.0000000000000000000e+0 (-4.235e-20%) - 3.8307114865123115489e-20 (-4.422%)j

>>> from xlcalcnet import mpm, fpm, gmp, apm
>>> mpm.dps = 20; x = '1.0'
>>> fx = fpm.expjpi(x); gx = gmp.expjpi(x); ax = apm.expjpi(x)
>>> mpm.show([fx, gx, ax], aligned=True)
fpm: -1.0000000000000000000E+00 + 1.2246467991473532072E-16j
gmp: -1.0000000000000000000E+00 + 6.5640070857470010853E-22j
apm: 0.0e+0 (0.0%)

An example with complex input:

>>> from xlcalcnet import dec, mpm, ipm
>>> mpm.dps = 20; z = '3 + 1.0j'
>>> \mathrm{d}z = dec.expjpi(z); mz = mpm.expjpi(z); iz = ipm.expjpi(z)
>>> mpm.show([\mathrm{d}z, mz, iz], aligned=True)
dec: -4.3213918263772249773E-2               - 4.8429773447118903534E-21j
mpm: -4.3213918263772249774e-2               + 0.0e+0j
ipm: -4.3213918263772249764e-2 (-1.254e-16%) - 5.0394088172058346211e-21 (-3112.0%)j

>>> from xlcalcnet import mpm, fpm, gmp, apm
>>> mpm.dps = 20; z = '3 + 1.0j'
>>> fz = fpm.expjpi(z); gz = gmp.expjpi(z); az = apm.expjpi(z)
>>> mpm.show([fz, gz, az], aligned=True)
fpm: -4.3213918263770523254E-02              + 1.5876536004102792749E-17j
gmp: -4.3213918263772249778E-02              - 6.1317510491589947464E-23j
apm: -4.3213918263772249774e-2 (-6.125e-20%) + 0.0e+0 (0.0%)j

Exponential function with base \(10\), \(\mathrm{exp10}(x) = 10^z\)#

ctx.exp10(x)#

where ctx is math53, mathc53, ctxcpp or ctxflint.

Returns \(\mathrm{exp10}(x) = 10^z = \exp(x \cdot \log(10))\), the base-10 exponential function of \(z\). See also Wikipedia [1348], MathWorld [919], NIST [515], Ehrhardt [309] (4.2.36), Mpmath [579].

An example in Python

>>> from xlcalcnet import xreal
>>> xreal.Exp10(0.5)
xreal('5.2359877559829887307E-1')
>>> xreal.Exp10('0.51')
xreal('5.3518479027559984754E-1')

An example in Visual Basic

>>> from xlcalcnet import Gpr
>>> Gpr.Exp10(0.5)
Gpr('5.2359877559829887307E-1')
>>> Gpr.Exp10('0.51')
Gpr('5.3518479027559984754E-1')

An example with real input:

>>> from xlcalcnet import dec, mpm, ipm
>>> mpm.dps = 40; x = 300
>>> \mathrm{d}x = dec.exp10(x); mx = mpm.exp10(x); ix = ipm.exp10(x)
>>> mpm.show([\mathrm{d}x, mx, ix])
dec:  1.000000000000000000000000000000000000000E+300
mpm:  1.000000000000000000000000000000000000006e+300
ipm:  1.000000000000000000000000000000000000000e+300 (1.764e-36%)

>>> from xlcalcnet import mpm, fpm, gmp, apm
>>> mpm.dps = 40; x = 300
>>> fx = fpm.exp10(x); gx = gmp.exp10(x); ax = apm.exp10(x)
>>> mpm.show([fx, gx, ax])
fpm:  1e+300
gmp:  1.000000000000000000000000000000000000000E+300
apm:  9.999999999999999999999999999999999999999e+299 (2.076e-38%)

The following example with complex input shows that the relative error can be high in double precision:

>>> from xlcalcnet import dec, mpm, ipm
>>> mpm.dps = 20; z = '3 + 1.57079632679489j'
>>> \mathrm{d}z = dec.exp10(z); mz = mpm.exp10(z); iz = ipm.exp10(z)
>>> mpm.show([\mathrm{d}z, mz, iz], aligned=True)
dec: -8.8915568479718223597E+2               - 4.5760481661894022373E+2j
mpm: -8.8915568479718223597e+2               - 4.5760481661894022374e+2j
ipm: -8.8915568479718223597e+2 (-1.073e-18%) - 4.5760481661894022373e+2 (-2.038e-18%)j

>>> from xlcalcnet import mpm, fpm, gmp, apm
>>> mpm.dps = 20; z = '3 + 1.57079632679489j'
>>> fz = fpm.exp10(z); gz = gmp.exp10(z); az = apm.exp10(z)
>>> mpm.show([fz, gz, az], aligned=True)
fpm: -8.8915568479718217532E+02              - 4.5760481661894021954E+02j
gmp: -8.8915568479718223597E+02              - 4.5760481661894022374E+02j
apm: -8.8915568479718223597e+2 (-1.951e-19%) - 4.5760481661894022373e+2 (-5.212e-19%)j

Exponential function with base \(2\), \(\mathrm{exp2}(x) = 2^x\)#

ctx.exp2(x)#

where ctx is math53, mathc53, ctxcpp or ctxflint.

Returns \(\mathrm{exp2}(x) = 2^x = \exp(x \cdot \log(2))\), the base-2 exponential function of \(x\). See also Wikipedia [1349], MathWorld [919], NIST [515], Ehrhardt [309] (4.2.35).

An example in Python

>>> from xlcalcnet import xreal
>>> xreal.Exp2(0.5)
xreal('5.2359877559829887307E-1')
>>> xreal.Exp2('0.51')
xreal('5.3518479027559984754E-1')

An example in Visual Basic

>>> from xlcalcnet import Gpr
>>> Gpr.Exp2(0.5)
Gpr('5.2359877559829887307E-1')
>>> Gpr.Exp2('0.51')
Gpr('5.3518479027559984754E-1')

An example with real input:

>>> from xlcalcnet import dec, mpm, ipm
>>> mpm.dps = 40; x = 300
>>> \mathrm{d}x = dec.exp2(x); mx = mpm.exp2(x); ix = ipm.exp2(x)
>>> mpm.show([\mathrm{d}x, mx, ix])
dec:  2.037035976334486086268445688409378161051E+90
mpm:  2.037035976334486086268445688409378161051e+90
ipm:  2.037035976334486086268445688409378161051e+90 (2.95e-37%)

>>> from xlcalcnet import mpm, fpm, gmp, apm
>>> mpm.dps = 40; x = 300
>>> fx = fpm.exp2(x); gx = gmp.exp2(x); ax = apm.exp2(x)
>>> mpm.show([fx, gx, ax])
fpm:  2.037035976334486e+90
gmp:  2.037035976334486086268445688409378161051E+90
apm:  2.037035976334486086268445688409378161051e+90 (6.084e-38%)

The following example with complex input shows that the relative error can be high in double precision:

>>> from xlcalcnet import dec, mpm, ipm
>>> mpm.dps = 20; z = '3 + 1.57079632679489j'
>>> \mathrm{d}z = dec.exp2(z); mz = mpm.exp2(z); iz = ipm.exp2(z)
>>> mpm.show([\mathrm{d}z, mz, iz], aligned=True)
dec: 3.7084411872640180216E+0              + 7.0885445586949540188E+0j
mpm: 3.7084411872640180216e+0              + 7.0885445586949540188e+0j
ipm: 3.7084411872640180216e+0 (8.679e-19%) + 7.0885445586949540188e+0 (4.78e-19%)j

>>> from xlcalcnet import mpm, fpm, gmp, apm
>>> mpm.dps = 20; z = '3 + 1.57079632679489j'
>>> fz = fpm.exp2(z); gz = gmp.exp2(z); az = apm.exp2(z)
>>> mpm.show([fz, gz, az], aligned=True)
fpm: 3.7084411872640181684E+00             + 7.0885445586949540342E+00j
gmp: 3.7084411872640180216E+00             + 7.0885445586949540188E+00j
apm: 3.7084411872640180216e+0 (1.827e-19%) + 7.0885445586949540188e+0 (9.559e-20%)j

Auxiliary function \(\mathrm{expm1}(x) = e^x-1\)#

ctx.expm1(x)#

where ctx is math53, mathc53, ctxcpp or ctxflint.

Returns \(\mathrm{expm1}(x) = \exp(x)-1 = e^x-1\), computed accurately also for small \(x\). See also Wikipedia [1341], MathWorld [919], NIST [515], BoostMath [81], Ehrhardt [309] (4.2.37), Flint [804], Flint [794], Mpmath [574].

An example in Python

>>> from xlcalcnet import xreal
>>> xreal.Expm1(0.5)
xreal('5.2359877559829887307E-1')
>>> xreal.Expm1('0.51')
xreal('5.3518479027559984754E-1')

An example in Visual Basic

>>> from xlcalcnet import Gpr
>>> Gpr.Expm1(0.5)
Gpr('5.2359877559829887307E-1')
>>> Gpr.Expm1('0.51')
Gpr('5.3518479027559984754E-1')

An example with real input:

>>> from xlcalcnet import dec, mpm, ipm
>>> mpm.dps = 40; x = '1.0E-100'
>>> \mathrm{d}x = dec.expm1(x); mx = mpm.expm1(x); ix = ipm.expm1(x)
>>> mpm.show([\mathrm{d}x, mx, ix])
dec:  1.000000000000000000000000000000000000000E-100
mpm:  1.000000000000000000000000000000000000000e-100
ipm:  1.000000000000000000000000000000000000000e-100 (1.312e-39%)

>>> from xlcalcnet import mpm, fpm, gmp, apm
>>> mpm.dps = 40; x = '1.0E-100'
>>> fx = fpm.expm1(x); gx = gmp.expm1(x); ax = apm.expm1(x)
>>> mpm.show([fx, gx, ax])
fpm:  1e-100
gmp:  1.000000000000000000000000000000000000000E-100
apm:  1.000000000000000000000000000000000000000e-100 (1.312e-39%)

The following example with complex input shows that the relative error can be high in double precision:

>>> from xlcalcnet import dec, mpm, ipm
>>> mpm.dps = 20; z = '1.0E-100 + 1.57079632679489j'
>>> \mathrm{d}z = dec.expm1(z); mz = mpm.expm1(z); iz = ipm.expm1(z)
>>> mpm.show([\mathrm{d}z, mz, iz], aligned=True)
dec: -9.9999999999999338077E-1               + 1.0000000000000000000E+0j
mpm: -9.9999999999999338077e-1               + 1.0000000000000000000e+0j
ipm: -9.9999999999999338077e-1 (-1.271e-19%) + 1.0000000000000000000e+0 (4.235e-20%)j

>>> from xlcalcnet import mpm, fpm, gmp, apm
>>> mpm.dps = 20; z = '1.0E-100 + 1.57079632679489j'
>>> fz = fpm.expm1(z); gz = gmp.expm1(z); az = apm.expm1(z)
>>> mpm.show([fz, gz, az], aligned=True)
fpm: -9.99999999999993E-01                   + 1.00000000000000E+00j
gmp: -9.9999999999999338077E-01              + 1.0000000000000000000E+00j
apm: -9.9999999999999338077e-1 (-1.694e-19%) + 1.0000000000000000000e+0 (1.271e-19%)j

Auxiliary function \(\mathrm{exp10m1}(x) = 10^x - 1\)#

ctx.exp10m1(x)#

where ctx is math53, mathc53, ctxcpp or ctxflint.

Returns \(10^x - 1 = \mathrm{expm1}(x \cdot \log(10))\). See also expm1().

An example in Python

>>> from xlcalcnet import xreal
>>> xreal.Exp10m1(0.5)
xreal('5.2359877559829887307E-1')
>>> xreal.Exp10m1('0.51')
xreal('5.3518479027559984754E-1')

An example in Visual Basic

>>> from xlcalcnet import Gpr
>>> Gpr.Exp10m1(0.5)
Gpr('5.2359877559829887307E-1')
>>> Gpr.Exp10m1('0.51')
Gpr('5.3518479027559984754E-1')

An example with real input:

>>> from xlcalcnet import dec, mpm, ipm
>>> mpm.dps = 40; x = '1.0E-100'
>>> \mathrm{d}x = dec.exp10m1(x); mx = mpm.exp10m1(x); ix = ipm.exp10m1(x)
>>> mpm.show([\mathrm{d}x, mx, ix])
dec:  2.302585092994045684017991454684364207601E-100
mpm:  2.302585092994045684017991454684364207601e-100
ipm:  2.302585092994045684017991454684364207601e-100 (3.419e-39%)

>>> from xlcalcnet import mpm, fpm, gmp, apm
>>> mpm.dps = 40; x = '1.0E-100'
>>> fx = fpm.exp10m1(x); gx = gmp.exp10m1(x); ax = apm.exp10m1(x)
>>> mpm.show([fx, gx, ax])
fpm:  2.3025850929940455e-100
gmp:  2.302585092994045684017991454684364207601E-100
apm:  2.302585092994045684017991454684364207601e-100 (3.419e-39%)

The following example with complex input shows that the relative error can be high in double precision:

>>> from xlcalcnet import dec, mpm, ipm
>>> mpm.dps = 20; z = '1.0E-100 + 1.57079632679489j'
>>> \mathrm{d}z = dec.exp10m1(z); mz = mpm.exp10m1(z); iz = ipm.exp10m1(z)
>>> mpm.show([\mathrm{d}z, mz, iz], aligned=True)
dec: -1.8891556847971822360E+0               - 4.5760481661894022373E-1j
mpm: -1.8891556847971822360e+0               - 4.5760481661894022374e-1j
ipm: -1.8891556847971822360e+0 (-2.242e-19%) - 4.5760481661894022373e-1 (-1.388e-18%)j

>>> from xlcalcnet import mpm, fpm, gmp, apm
>>> mpm.dps = 20; z = '1.0E-100 + 1.57079632679489j'
>>> fz = fpm.exp10m1(z); gz = gmp.exp10m1(z); az = apm.exp10m1(z)
>>> mpm.show([fz, gz, az], aligned=True)
fpm: -9.99999999999993E-01                   + 1.00000000000000E+00j
gmp: -9.9999999999999338077E-01              + 1.0000000000000000000E+00j
apm: -9.9999999999999338077e-1 (-1.694e-19%) + 1.0000000000000000000e+0 (1.271e-19%)j

Auxiliary function \(\mathrm{exp2m1}(x) = 2^x - 1\)#

ctx.exp2m1(x)#

where ctx is math53, mathc53, ctxcpp or ctxflint.

Returns \(2^x - 1 = \mathrm{expm1}(x \cdot \log(2))\). See also expm1().

An example in Python

>>> from xlcalcnet import xreal
>>> xreal.Exp2m1(0.5)
xreal('5.2359877559829887307E-1')
>>> xreal.Exp2m1('0.51')
xreal('5.3518479027559984754E-1')

An example in Visual Basic

>>> from xlcalcnet import Gpr
>>> Gpr.Exp2m1(0.5)
Gpr('5.2359877559829887307E-1')
>>> Gpr.Exp2m1('0.51')
Gpr('5.3518479027559984754E-1')

An example with real input:

>>> from xlcalcnet import dec, mpm, ipm
>>> mpm.dps = 40; x = '1.0E-100'
>>> \mathrm{d}x = dec.exp2m1(x); mx = mpm.exp2m1(x); ix = ipm.exp2m1(x)
>>> mpm.show([\mathrm{d}x, mx, ix])
dec:  6.931471805599453094172321214581765680755E-101
mpm:  6.931471805599453094172321214581765680755e-101
ipm:  6.931471805599453094172321214581765680755e-101 (2.839e-39%)

>>> from xlcalcnet import mpm, fpm, gmp, apm
>>> mpm.dps = 40; x = '1.0E-100'
>>> fx = fpm.exp2m1(x); gx = gmp.exp2m1(x); ax = apm.exp2m1(x)
>>> mpm.show([fx, gx, ax])
fpm:  6.931471805599454e-101
gmp:  6.931471805599453094172321214581765680755E-101
apm:  6.931471805599453094172321214581765680755e-101 (3.786e-39%)

The following example with complex input shows that the relative error can be high in double precision:

>>> from xlcalcnet import dec, mpm, ipm
>>> mpm.dps = 20; z = '1.0E-100 + 1.57079632679489j'
>>> \mathrm{d}z = dec.exp2m1(z); mz = mpm.exp2m1(z); iz = ipm.exp2m1(z)
>>> mpm.show([\mathrm{d}z, mz, iz], aligned=True)
dec: -5.3644485159199774730E-1               + 8.8606806983686925235E-1j
mpm: -5.3644485159199774730e-1               + 8.8606806983686925235e-1j
ipm: -5.3644485159199774730e-1 (-5.526e-19%) + 8.8606806983686925235e-1 (1.434e-19%)j

>>> from xlcalcnet import mpm, fpm, gmp, apm
>>> mpm.dps = 20; z = '1.0E-100 + 1.57079632679489j'
>>> fz = fpm.exp2m1(z); gz = gmp.exp2m1(z); az = apm.exp2m1(z)
>>> mpm.show([fz, gz, az], aligned=True)
fpm: -5.36444851591998E-01                   + 8.86068069836869E-01j
gmp: -5.3644485159199774730E-01              + 8.8606806983686925235E-01j
apm: -5.3644485159199774726e-1 (-6.316e-19%) + 8.8606806983686925232e-1 (2.39e-19%)j

previous

Roots and quadratic, cubic, and quartic equations

next

Logarithms and related functions

Contents
  • Exponential function \(\exp(x) = e^x\)
    • ctx.exp()
  • Auxiliary function \(\mathrm{expj}(x) = e^{ix}\)
    • ctx.expj()
  • Auxiliary function \(\mathrm{expjpi}(x) = e^{i \pi x} = (-1)^x\)
    • ctx.expjpi()
  • Exponential function with base \(10\), \(\mathrm{exp10}(x) = 10^z\)
    • ctx.exp10()
  • Exponential function with base \(2\), \(\mathrm{exp2}(x) = 2^x\)
    • ctx.exp2()
  • Auxiliary function \(\mathrm{expm1}(x) = e^x-1\)
    • ctx.expm1()
  • Auxiliary function \(\mathrm{exp10m1}(x) = 10^x - 1\)
    • ctx.exp10m1()
  • Auxiliary function \(\mathrm{exp2m1}(x) = 2^x - 1\)
    • ctx.exp2m1()

By Dietrich Hadler

© Copyright 2026, Dietrich Hadler. .

Last updated on Aug 19, 2026.