NEWS R Documentation

## pracma News

### Changes in Version 1.5.8 (2013-08-20)

• Removed pltcross() and kmeanspp().

### Changes in Version 1.5.7 (2013-10-11)

• runs.test() implements the statistical ‘Runs test’.

• Corrected parameter ‘waypoints’ in cintegral().

### Changes in Version 1.5.6 (2013-09-22)

• odregress() orthogonal distance (or: total least-squares) regression.

• Changed maintainer name to its long form (CRAN request).

### Changes in Version 1.5.5 (2013-09-11)

• L1linreg() L1 (a.k.a. LAD or median) linear regression.

• geo_median() geometric median (minimizes sum of distances).

### Changes in Version 1.5.4 (2013-08-29)

• rectint() rectangular intersection areas (Matlab style).

• cumtrapz() cumulative trapezoidal integration (Matlab style).

• Some corrections to help pages and function names.

### Changes in Version 1.5.3 (2013-08-25)

• arclength() length of a parametrized curve in n-dimensional space, w/ improved convergence by applying Richardson's extrapolation method.

• legendre() associated Legendre functions (Matlab style).

### Changes in Version 1.5.2 (2013-08-23)

• poly_center() calculates the center coordinates of a polygon.

• poly_length() calculates the (euclidean) length of a polygon.

• polyarea() corrected, returns the true, not the absolute value.

### Changes in Version 1.5.1 (2013-08-19)

• fsolve() will use broyden() if m = n; fzsolve() the same; additionally, improved broyden() and gaussNewton().

• ezplot() can draw markers on the line, with equal distances measured along the curve length.

### Changes in Version 1.5.0 (2013-08-08)

• gmres() generalized minimum residual method.

• nearest_spd() find nearest symmetric positive-definite matrix.

• eps() floating point relative accuracy.

### Changes in Version 1.4.9 (2013-07-16)

• lapacian() now works in n dimensions, not only for n=2.

• mldivide(), mrdivide() corrected a severe typo.

• numderiv(), numdiff() start with h = 1/2 instead of h = 1.

• figure() platform-independent by using dev.new().

### Changes in Version 1.4.8 (2013-06-17)

• findzeros() now finds ‘quadratic’ roots, too.

• fsolve() will use newtonsys() if m = n.

• pdist2() added as an alias for distmat(), while pdist(X) now is distmat(X, X) (Matlab style).

### Changes in Version 1.4.7 (2013-05-20)

• histcc() histogram with optimized number of bins.

• Example of correction term for the trapz() integration.

### Changes in Version 1.4.6 (2013-03-31)

• psi() Psi polygamma function (Matlab style).

• rosenbrock() and rastrigin() functions removed.

### Changes in Version 1.4.5 (2013-03-21)

• squareform() formats distance matrix (Matlab style).

### Changes in Version 1.4.4 (2013-02-12)

• integral2() implements the two-dimensional numerical integration approach ‘TwoD’,
i.e. Gauss-Kronrod (3, 7)-points on rectangles.

• integral3() three-dimensional integration based on integral2().

• triplequad() 3-dim. integration based on dblquad() (Matlab style).

### Changes in Version 1.4.3 (2013-03-10)

• integral() combines adaptive numerical integration procedures.

• cintegral() complex line integrals (rectangles and curves).

### Changes in Version 1.4.2 (2013-03-03)

• linprog() linear programming solver for linear equality and inequality constraints.

### Changes in Version 1.4.1 (2013-02-20

• romberg() Romberg integration completely rewritten.

• idivide() integer division with different roundings.

### Changes in Version 1.4.0 (2013-02-10)

• fderiv(), taylor() expanded to higher orders.

• itersolve() iteration methods for solving linear systems.

• lu() LU decomposition with different schemes (w/o pivoting).

### Changes in Version 1.3.9 (2013-01-26)

• pdist() as an alias for distmat() (Matlab style).

• fftshift(), ifftshift() shifting Fourier frequencies.

• Improved grad(), jacobian(), hessian(), and laplacian().

### Changes in Version 1.3.8 (2013-01-10)

• Smaller corrections; no startup messages anymore.

• geomean(), harmmean(), trimmean() geometric, harmonic, and trimmed arithmetic mean (Matlab style).

• agmean() algebraic-geometric mean.

### Changes in Version 1.3.7 (2013-01-07)

• mexpfit() multi-exponentiell fitting.

### Changes in Version 1.3.6 (2013-01-06)

• lsqsep() separable least-squares fitting.

• lsqcurvefit() nonlinear least-squares curve fitting.

### Changes in Version 1.3.5 (2013-01-05)

• cd(), pwd() directory functions (Matlab style).

• rand(), randn() changed to accept size() as input.

• whos(), what() corrected for empty lists resp. directories.

### Changes in Version 1.3.4 (2012-12-19)

• what(), who(), whos(), ver() (Matlab style).

• semilogx(), semilogy(), loglog() logarithmic plots (Matlab style)

### Changes in Version 1.3.3 (2012-12-12)

• quadv() vectorized integration.

• ezpolar() easy access to the polar() function.

• sortrows() sorting rows of matrices (Matlab style).

• null() alias for nullspace function (Matlab style).

• eigjacobi() Jacobi's method for eigenvalues and eigenvectors.

### Changes in Version 1.3.2 (2012-12-08)

• ellipke(), ellipj() elliptic and Jacobi elliptic integrals.

• expint() implements E1 and Ei, the exponential integrals, with aliases expint_E1() and expint_Ei().

• li() the logarithmic integral (w/o offset).

### Changes in Version 1.3.1 (2012-12-06)

• Explicitely listing about 200 Matlab-emulating function names.

• Dismissed matlab(), using it now for infos only, not assigning Matlab function names to the environment (because of CRAN policies).

### Changes in Version 1.3.0 (2012-12-05)

• cot(), csc(), sec() cotangens, cosecans, and secans functions.

• acot(), acsc(), asec() inverse cotangens, cosecans, secans.

• coth(), csch(), sech() hyperbolic cotangens, cosecans, secans.

• acoth(), acsch(), asech() inverse hyperbolic cotangens, cosecans, and secans functions.

### Changes in Version 1.2.9 (2012-12-02)

• bvp() changed to solve second order boundary value problems.

• trisolve() solves tridiagonal linear equation systems.

• curvefit() fits points in the plane with a polynomial curve.

### Changes in Version 1.2.8 (2012-11-30)

• lsqlin() least-squares solver with linear equality constraints.

• pinv() now works like MASS::ginv() for singular matrices.

• Added the end-';' feature to str2num().

• toc() added invisible return value.

### Changes in Version 1.2.7 (2012-11-22)

• procrustes() solving the Procrustes problem, and kabsch() implements the Kabsch algorithm.

• kriging() ordinary and simple Kriging interpolation.

• Corrected some stupid errors in str2num().

### Changes in Version 1.2.6 (2012-11-11)

• akimaInterp() univariate Akima interpolation.

• Moved transfinite() to package ‘adagio’.

### Changes in Version 1.2.5 (2012-09-28)

• histc() Histogram-like counting (Matlab style).

• Added warning to complexstep() if imaginary part is zero.

### Changes in Version 1.2.4 (2012-10-25)

• Added option ‘pinv’ to mldivide() to return the same results as Matlab.

• str2num(), num2str() conversion functions (Matlab style).

• Removed some ‘author’ entries on help pages.

### Changes in Version 1.2.3 (2012-10-17)

• Renamed mrank() to Rank().

• Corrected nullspace() [thanks to Stephane Laurent], which now agrees with Octave's null() function (MASS:Null appears buggy, too).

• Corrected gaussNewton() and fsolve() [thanks to Etienne Chamayou].

### Changes in Version 1.2.2 (2012-10-10)

• bsxfun() apply binary function elementwise (Matlab style).

• added the analytic solution for the example in bvp().

### Changes in Version 1.2.1 (2012-09-28)

• rosenbrock() added, moved testfunctions to ‘adagio’ package.

• euler_heun() improved Euler method for solving ODEs.

• logit() function added to sigmoid().

• Keyword ‘ode’ introduced.

### Changes in Version 1.2.0 (2012-09-27)

• matlab() can reinstall Matlab function names.

### Changes in Version 1.1.9 (2012-09-25)

• gcd(), lcm() greatest common divisor, least common multiple now working on a vector of integers.

• Removed number-theoretic functions: eulersPhi(), moebiusFun(), mertensFun(), sigma(), tau(), omega(), Omega(), primes2(), twinPrimes(), nextPrime(), previousPrime(), modpower(), modorder(), modinv(), modlin(), primroot(), contfrac(), coprime(), GCD(), LCM(), extGCD(), (these functions are now available in the ‘numbers’ package).

### Changes in Version 1.1.8 (2012-09-19)

• ezcontour(), ezmesh() wrappers for contour(), image(), persp().

• erfi() imaginary error function.

### Changes in Version 1.1.7 (2012-08-06)

• moler() Moler matrix

### Changes in Version 1.1.6 (2012-07-20)

• Removed ‘.Rapphistory’ from the tests directory (again) [and use “–as-cran” for the checks].

• disp() display text or array (Matlab Style), cat() with newline.

### Changes in Version 1.1.5 (2012-07-18)

• Renamed functions with capital first letter to avoid name clashes: And/Or, mtrace -> Trace, mdiag -> Diag, strtrim -> strTrim, reshape -> Reshape, find -> Find, fix -> Fix, mode -> Mode, real -> Real, imag -> Imag, hadamard -> Hadamard, toeplitz -> Toeplitz, poly -> Poly.

### Changes in Version 1.1.4 (2012-06-26)

• gammainc() (lower and upper) incomplete gamma function, also the regularized gamma function, all allowing negative x values.

• polylog() the polylogarithm functions for |z| < 1 and n >= -4 .

### Changes in Version 1.1.3 (2012-06-17)

• fminsearch() implements Nelder-Mead (similar to optim), and Fletcher-Powell when “dfree=FALSE” is chosen.

• Test functions rosenbrock(), rastrigin(), and many more.

### Changes in Version 1.1.2 (2012-06-13)

• nelder_mead() implements Nelder-Mead for nonlinear optimization.

• hooke-jeeves() Hooke-Jeeves algorithm for direct search.

• fletcher_powell() Davidon-Fletcher-Powell method for function minimization (alternative to BFGS approach).

• steepest_descent() minimization of functions using steepest descent.

### Changes in Version 1.1.1 (2012-06-10)

• fminbnd() implements Brent's function minimization algorithm with golden section search and parabolic interpolation (same as optimize).

• transfinite() transformation function between bounded and unbounded (box constraint) regions.

• renamed brentDekker() to brent_dekker

### Changes in Version 1.1.0 (2012-06-06)

• hurst(), hurstexp() calculate the Hurst exponent of a time series.

• Updated the NEWS.Rd file.

### Changes in Version 1.0.9 (2012-06-03)

• lsqnonneg() solves nonnegative least-squares problems by using the trick “x –> exp(x)" and applying lsqnonlin(); example function lsqcurvefit() for nonlinear curve fitting.

• Renamed ridder() to ridders(), thanks to Robert Monfera for pointing it out (he also suggested a multi-dimensional variant).

### Changes in Version 1.0.8 (2012-05-22)

• movavg() moving average of types “simple", “weighted", “modified", “exponential" (EMA), or “triangular".

• modlin() solves modular linear equations.

### Changes in Version 1.0.7 (2012-05-11)

• lsqnonlin() solves nonlinear least-squares problems using the Levenberg-Marquardt approach.

• renamed froots() to findzeros(), and fmins() to findmins().

### Changes in Version 1.0.6 (2012-04-21)

• fornberg() finite difference (i.e., polynomial) approximation of derivatives for unevenly spaced grid points – Fornberg's method.

### Changes in Version 1.0.5 (2012-04-15)

• randsample() randomly sampling, alias for sample (Matlab style).

• rands() generates uniform random points on an N-sphere.

• Added tic(), toc() measuring elapsed time (Matlab style).

• previousPrime() finds the next prime below a number.

### Changes in Version 1.0.4 (2012-04-01)

• invlap() computes the inverse Lapacian numerically.

• ppfit() piecewise polynomial fitting procedure.

### Changes in Version 1.0.3 (2012-03-21)

• cubicspline() interpolating cubic spline (w/ endpoint conditions).

• mkpp() and ppval() for piecewise polynomial structures.

### Changes in Version 1.0.2 (2012-03-17)

• accumarray() resembles the related Matlab function more closely.

• invperm() returns the inverse of a permutation.

• randperm() changed to make it more Matlab-like.

### Changes in Version 1.0.1 (2012-03-09)

• plotyy() corrected right ordinate, prettying the labels.

• peaks() peaks function (Matlab style).

### Changes in Version 1.0.0 (2012-03-01)

• Updated the NEWS.Rd file.

### Changes in Version 0.9.9 (2012-01-29)

• qrSolve solves overdetermined system of linear equations.

• DSCsearch() removed, now in package ‘pracopt’.

• randp() found a better, non-selective approach.

### Changes in Version 0.9.8 (2012-02-23)

• gramSchmidt() modified Gram-Schmidt process.

• householder() Householder reflections and QR decomposition.

• givens() Givens rotation and QR decomposition.

• corrected a small error in ridder() (thanks to Roger Harbord).

### Changes in Version 0.9.7 (2012-02-17)

• erf() corrected, erfc() and erfcx() as new functions, including their inverses erfinv() and erfcinv().

• hypot() now numerically more stable (thanks to Jerry Lewis).

### Changes in Version 0.9.6 (2012-01-25)

• Changed third example for dblquad() [new Windows toolchain problem].

• Deactivated the test for gammaz() because of problems on Solaris.

### Changes in Version 0.9.5 (2012-01-16)

• kmeanspp() kmeans++ clustering algorithm.

• savgol() and hampel() with new options, fuelled by a blog entry of Ron Pearson in his ExploringDataBlog.

### Changes in Version 0.9.4 (2012-01-08)

• DSCsearch() Davies-Swann-Campey search in one dimension.

• Improved modpower() through modular exponentiation. Added lehmann_test() Lehmann's primality test as example.

• Corrected polar() and andrewsplot().

### Changes in Version 0.9.3 (2011-12-27)

• direct1d() one-dimensional version of the DIRECT algorithm for global function minimization.

### Changes in Version 0.9.2 (2011-12-26)

• ApEn() approximate entropy of a time series.

• circshift() circularly shifting arrays (Matlab Style).

### Changes in Version 0.9.1 (2011-12-12)

• plotyy() plots curves with y-axes on both left and right side.

• fplot() plots components of a multivariate function.

### Changes in Version 0.9.0 (2011-12-11)

• errorbar() routine for plotting error bars in both directions.

• Whittaker-Henderson smoothing ** Not yet running** .

• rref() reduced row echelon form.

### Changes in Version 0.8.9 (2011-12-08)

• cutpoints() automatically finds cutting points based on gaps.

• hausdorff_dist calculates the Hausdorff distance / Hausdorff dimension.

• nnz() number of non-zeros elements (Matlab style).

### Changes in Version 0.8.8 (2011-12-06)

• polar() for polar plots (Matlab style), see the example plots.

• andrewsplot() plots Andrews curves in polar coordinates.

• Vectorized: cart2sph(), sph2cart(), cart2pol(), pol2cart().

### Changes in Version 0.8.7 (2011-11-30)

• figure() Matlab style and pltcross() plotting crosses.

### Changes in Version 0.8.6 (2011-11-21)

• ridder() Ridder's method for zero finding of univariate functions.

### Changes in Version 0.8.5 (2011-11-19)

• sqrtm() matrix square root, based on Denman-Beavers iteration, rootm() matrix p-th root, computing a complex contour integral, signm() matrix sign function.

• fzero() now uses the new zeroin() function, i.e., a Brent-Dekker approach instead of refering to uniroot().

• twinPrimes() twin primes in a given interval, and `nextPrime` will find the next higher prime.

### Changes in Version 0.8.4 (2011-11-14)

• Transformations between cartesian, spherical, polar and cylindrical coordinate systems: cart2sph(), sph2cart(), cart2pol(), pol2cart().

• polar() uniformly random points in the unit circle (till Matlab 5).

### Changes in Version 0.8.3 (2011-11-11)

• accumarray() grouping elements and applying a function to each group.

• uniq() Matlab-style ‘unique’ function, allsums() in the examples.

• small correction to fsolve(), mentioned on the ‘check summary’ page.

### Changes in Version 0.8.2 (2011-11-04)

• newmark() Newmark's method for solving second order differential equations of the form y”(t) = f(t, y(t), y'(t)) on [t1, t2].

• cranknic() Crank-Nicolson ‘ivp’ solver, combining the forward and backward Euler methods for ordinary differential equations.

### Changes in Version 0.8.1 (2011-10-30)

• Corrected pinv() for (nearly) singular matrices.

• Renamed ifactor() to factors().

### Changes in Version 0.8.0 (2011-10-27)

• Minor corrections and improvements to the ‘pracma.pdf’ manual, incl. numdiff(), refindall(), trigApprox(), and subspace().

### Changes in Version 0.7.9 (2011-10-22)

• spinterp() monotonic (and later on shape-preserving) interpolation following the approach of Delbourgo and Gregory.

### Changes in Version 0.7.8 (2011-10-17)

• bvp() solves boundary value problems of the following kind:
-u”(x) + c1 u'(x) + c2 u(x) = f(x) for x in [a, b].

### Changes in Version 0.7.7 (2011-10-14)

• primes2(n1, n2) will return all prime numbers betweeen n1 and n2 (without storing the numbers from sqrt(n2) up to n1).

### Changes in Version 0.7.6 (2011-08-05)

• gaussNewton() for function minimization and solving systems of nonlinear equations. fsolve() as a wrapper for it.

• fzsolve() for root finding of complex functions.

• softline() Fletcher's inexact linesearch algorithm.

### Changes in Version 0.7.5 (2011-07-26)

• Put NEWS.Rd in the /inst subdirectory (and NEWS.pdf in /doc), thanks to Kurt Hornik; slightly changed the version numbering.

### Changes in Version 0.7.4 (2011-07-22)

• rortho() generate random orthogonal matrix of size n.

• Titanium data set for testing fitting procedures.

### Changes in Version 0.7.3 (2011-07-15)

• erf() and erfc() error and complementary error functions (Matlab style) as (almost) aliases for pnorm().

• erfz() complex error function.

### Changes in Version 0.7.2 (2011-07-11)

• broyden() quasi-Newton root finding method for systems of nonlinear equations.

### Changes in Version 0.7.1 (2011-07-09)

• cross() has been vectorized (remark on R-help).

### Changes in Version 0.7.0 (2011-07-07)

• Sigmoid and Einstein functions.

### Changes in Version 0.6.9 (2011-07-06)

• Runge-Kutta-Fehlberg method of order (5,4).

### Changes in Version 0.6.8 (2011-07-05)

• cotes() Newton-Cotes integration formulae for 2 to 8 nodes.

### Changes in Version 0.6.7 (2011-07-04)

• lagrangeInterp(), newtonInterp() Lagrange and Newton polynomial interpolation, neville() Neville's methods.

• tril(), triu() extracting triangular matrices (Matlab style).

### Changes in Version 0.6.6 (2011-07-02)

• charpoly() computes the characteristic polynomial, the determinant, and the inverse for matrices that are relativly small, applying the Faddejew-Leverrier method.

• froots() to find *all* roots (also of second or higher order) of a univariate function in a given interval. The same with fmins() to find all minima.

### Changes in Version 0.6.5 (2011-07-01)

• Adams-Bashford and Adams-Moulton (i.e., multi-step) methods for ordinary differential equations in function abm3pc().

### Changes in Version 0.6.4 (2011-06-30)

• Changed the description to be more precise about the package.

### Changes in Version 0.6.3 (2011-06-28)

• rationalfit() rational function approximation

• ratinterp() rational interpolation a la Burlisch-Stoer.

### Changes in Version 0.6.0 (2011-06-24)

• muller() Muller's root finding method.

• Added differential equation example to expm()'s help page.

• Changed NEWS file to become simpler (no subsections).

### Changes in Version 0.5.9 (2011-06-23)

• simpadpt() another recursively adaptive Simpson's rule.

• Added testing procedures for all integration routines; corrected, refined some of these procedures.

### Changes in Version 0.5.8 (2011-06-20)

• quadgr() Gaussian Quadrature with Richardson extrapolation, can handle singularities at endpoints and (half-)infinite intervals.

### Changes in Version 0.5.7 (2011-06-18)

• expm() for matrix exponentials.

• clenshaw_curtis() the Clenshaw-Curtis quadrature formula.

### Changes in Version 0.5.6 (2011-06-17)

• simpson2d() as non-adaptive 2-dimensional Simpson integration.

• dblquad() twofold application of internal function integrate().

### Changes in Version 0.5.5 (2011-06-15)

• gaussHermite() and gaussLaguerre() for infinite intervals.

• Fresnel integrals fresnelS() and frenelC().

### Changes in Version 0.5.4 (2011-06-12)

• gaussLegendre() computes coefficients for Gauss Quadrature, and quad2d() uses these weights for 2-dimensional integration.

• quadinf() wrapper for integrate() on infinite intervals.

### Changes in Version 0.5.3 (2011-06-06)

• ode23() solving first order (systems of) differential equations.

• barylag2d() 2-dimensional barycentric Lagrange interpolation.

### Changes in Version 0.5.2 (2011-06-04)

• interp2() for two-dimensional interpolation.

• gradient() now works in two dimensions too.

### Changes in Version 0.5.1 (2011-06-01)

• fzero(), fminbnd(), fminsearch(), fsolve() as aliases for uniroot(), optimize(), optim() with Nelder-Mead, newtonsys().

### Changes in Version 0.5.0 (2011-05-31)

• Corrections to help pages.

### Changes in Version 0.4.9 (2011-05-30)

• romberg() and gauss_kronrod() for numerical integration.

• Richardson's extrapolation in numderiv(), numdiff().

• Discrete numerical derivatives (one dimension): gradient().

### Changes in Version 0.4.8 (2011-05-28)

• Numerical function derivatives: fderiv(), grad().

• Specialized operators: hessian(), laplacian().

• Application: taylor().

### Changes in Version 0.4.7 (2011-05-27)

• plot vector fields: quiver() and vectorfield().

• findintervals().

• Corrections in deval(), deeve(), using findintervals().

### Changes in Version 0.4.6 (2011-05-26)

• Laguerre's method laguerre().

• rk4() and rk4sys() classical fourth order Runge-Kutta.

• deval(), deeve() evaluate ODE solutions.

### Changes in Version 0.4.5 (2011-05-24)

• Lebesgue coefficient: lebesgue().

• poly2str() for string representation of a polynomial.

### Changes in Version 0.4.4 (2011-05-23)

• Dirichlet's eta() and Riemann's zeta() function.

• rmserr() different accuracy measures; std_err() standard error.

### Changes in Version 0.4.3 (2011-05-22)

• polypow() and polytrans() for polynomials.

• polyApprox() polynomial approximation using Chebyshev.

• trigPoly(), trigApprox() for trigonometric regression.

### Changes in Version 0.4.2 (2011-05-17)

• segm_intersect() and segm_distance() segment distances.

• inpolygon().

### Changes in Version 0.4.1 (2011-05-13)

• conv() and deconv() time series (de)convolution.

• detrend() removes (piecewise) linear trends.

• ifft() for normalized inverse Fast Fourier Transform.

### Changes in Version 0.4.0 (2011-05-10)

• Added tests for functions since version 0.3-7.

### Changes in Version 0.3.9 (2011-05-09)

• and() and or().

### Changes in Version 0.3.8 (2011-05-06)

• pchip() and option ‘cubic’ for interp1() interpolation.

• The complex gamma functions gammaz().

• hadamard() and toeplitz() matrices.

### Changes in Version 0.3.7 (2011-05-04)

• Rank of a matrix, mrank(), and nullspace() for the kernel.

• orth(), orthogonal basis of the image space, and subspace() determines the angle between two subspaces.

• normest() for estimating the (Frobenius) norm of a matrix, and cond() determines the condition number of a matrix.

### Changes in Version 0.3.6 (2011-04-30)

• fact(), more accurate than the R internal function ‘factorial’.

• ezplot() as an alias for curve(), but with option “fill = TRUE”.

• aitken() for accelerating iterations.

• Renamed polycnv() to polymul().

• Renamed outlierMAD() to hampel().

### Changes in Version 0.3.5 (2011-04-23)

• Lambert W function lambertWp() for the real principal branch.

• “Complex Step” derivation with complexstep() and complexstepJ().

### Changes in Version 0.3.4 (2011-04-21)

• Barycentric Lagrange interpolation through barylag().

• polyfit2() fits a polynomial that exactly meets one additional point.

• Added more references to the help entry ‘pracma-package.Rd’.

### Changes in Version 0.3.3 (2011-04-19)

• hornerdefl() for also returning the deflated polynomial.

• newtonHorner() combining Newton's method and the Horner scheme for root finding for polynomials.

• jacobian() computes the Jacobian of a function R^n –> R^m as simple numerical derivative.

• newtonsys() applies Newton's method to functions R^n –> R^n with special application to root finding of complex functions.

• newton() renamed to newtonRaphson().

### Changes in Version 0.3.2 (2011-04-17)

• Sorting functions: bubbleSort(), insertionSort(), selectionSort(), shellSort(), heapSort(), mergeSort(), mergeOrdered(), quickSort(), quickSortx(), is.sorted(), and testSort().

• Functions from number theory: eulersPhi(), moebiusFun() and the mertensFun(), sigma(), tau(), omega(), and Omega().

### Changes in Version 0.3.1 (2011-04-16)

• Chebyshev polynomials of the first kind: chebPoly(), chebCoeff(),and chebApprox().

### Changes in Version 0.3.0 (2011-04-09)

• New version of news.Rd, news.pdf.

• More test functions for root finding and quadrature.

### Changes in Version 0.2.9

• fnorm() and the Runge function runge().

• contfrac(), rat(), and rats() for continuous fractions.

• meshgrid() and magic().

### Changes in Version 0.2.8

• Minimum finding with fibsearch() and golden_ratio().

• Root finding with newton(), secant(), and brentDekker().

### Changes in Version 0.2.7

• Regular expression functions regexp(), regexpi(), regexprep() and refindall().

### Changes in Version 0.2.6

• String functions blanks(), strtrim(), deblank(), strjust(), and strrep().

• interp1() one-dimensional interpolation (incl. spline)

### Changes in Version 0.2.5

• Matlab functions mode(), clear() and beep().

### Changes in Version 0.2.4

• primroot() finds the smallest primitive root modulo a given n; needed functions are modpower() and modorder().

• humps() and sinc(): Matlab test functions.

• Root finding through bisection: bisect(), regulaFalsi().

• outlierMAD(), findpeaks(), and piecewise().

• polycnv() for polynomial multiplication.

• Functions extgcd(), gcd(), and lcm() have been renamed to extGCD(), GCD(), and LCM() respectively.

### Changes in Version 0.2.3

• strfind(), strfindi(), and findstr().

• circlefit() fitting a circle to plane points.

• mldivide() and mrdivide(), emulating the Matlab backslash operator.

### Changes in Version 0.2.2

• vnorm() vector norm

• Warning about a nasty “non-ASCII input” in the savgol.RD file has been resolved.

### Changes in Version 0.2.1

• horner() implementing the horner scheme for evaluating a polynomial and its derivative.

• savgol() Savitzki-Golay smoothing and needed pseudoinverse pinv().

### Changes in Version 0.2.0

• Package renamed to ‘pracma’ to avoid name clashes with packages such as ‘matlab’ that are sticking closer to the original.

• Added ‘pracma-package’ section to the manual.

### Changes in Version 0.1.9

• reshape(), repmat(), and blkdiag() matrix functions.

• combs() chooses all combinations of k elements out of n, and randcomb() generates a random selection.

• perms() generates all permutations, randperm() a random permutation.

• Pascal triangle as pascal(); nchoosek() returns binomial coefficients.

• Some string functions: strcmp(), strcmpi(), strcat().

### Changes in Version 0.1.8

• std() as refinement of the standard deviation function.

• ceil() and fix() as aliases for ceiling() and trunc(). [floor() and round() already exist in R.]

• Modulo functions mod(), rem() and integer division idiv().

• Integer functions related to the Euclidean algorithm: extgcd(), gcd(), lcm(), coprime(), and modinv().

• distmat() and crossn(), the vector product in n-dimensional space.

### Changes in Version 0.1.7

• size(), numel(), ndims(), isempty(), and find().

• eye(), ones(), zeros().

• Functions returning random numbers: rand(), randn(), randi().

• linspace(), logspace(), and logseq() for linearly, logarithmically, and exponentially spaced sequences.
Note that the functions in the ‘matlab’ package are not exactly mimicking the corresponding Matlab/Octave functions.

### Changes in Version 0.1.6

• Matrix functions mdiag() and mtrace() added. inv() is introduced as an alias for solve() in R.

• Generate special matrices hankel(), rosser(), and wilkinson(). kron() is an alias for the R function kronecker().

• Renamed factors() to ifactor() to distiguish it more clearly from factors as used in R.

### Changes in Version 0.1.5

• Added functions for flipping or rotating numeric and complex matrices: flipdim(), flipud(), fliplr(), and rot90().

### Changes in Version 0.1.4

• Added basic complex functions real(), imag(), conj(), and angle() which are essentially only aliases of the R functions Re(), Im(), and Conj().
angle() returns the angle of a complex number in radians. The R function Mod() is here only available as abs().

### Changes in Version 0.1.3

• Added compan() function for the ‘companion’ matrix; the eig() function is an alias for the R eigen()values function.

• Added the polynomial functions poly(), polyder(), polyfit(), polyint(), and polyval().

• roots() returns real and complex roots of polynomials.

• Simplified the trapz() function.

### Changes in Version 0.1.2

• Added functions from number theory: primes(), isprime() and factors().

• The corresponding function for factors() in Matlab/Octave is called factor(), but that name should not be shadowed in R!

• Added the polyarea() and trapz() functions.

### Changes in Version 0.1.1

• Added some simple functions such as nthroot(), pow2(), and nextpow2().

• dot() and cross() functions for scalar and vector product.

• Generate matrices through vander() and hilb().

### Changes in Version 0.1.0

• Installation

‘pracma’ will be a pure R package without using source code in C or Fortran. Therefore, installation will be immediate on all platforms.

• Intention

This package provides R implementations of more advanced math functions from Matlab and Octave (and the Euler Math Toolbox) with a special view on optimization and time series routines.

• Remark: Typeset this document as:

`R CMD Rd2pdf NEWS.Rd --title="NEWS for pracma version 1.5.4"`.