{"entries":[{"type":"Docs","title":"Getting started","url":"http:\/\/tessero.org\/docs\/getting-started","section":null,"text":"Quickstart Ten minutes with the main features. The examples use the FFI package (Tessero\\NDArray); the extension's Tessero\\Ext\\NDArray accepts the same calls and adds operators, shown at the end. Arrays Views and slicing Slices are views: they share memory with the original array. Linear algebra, FFT, random numbers Optimisation and decisions With the extension: operators With the extension loaded, the FFI NDArray gets the same operators through Tessero\\Ext\\Operand. Next Choosing a backend User guide Deploying to production"},{"type":"Docs","title":"Installation","url":"http:\/\/tessero.org\/docs\/installation","section":null,"text":"Installation Tessero needs PHP 8.2 or newer on a 64-bit platform. Pick one backend (or install both; the Laravel package uses the extension when it is loaded and falls back to FFI otherwise). Option A: the FFI package (no compiler needed) Requirements: ext-ffi (bundled with PHP; on Debian\/Ubuntu it is part of php8.x-common; on the official Docker images run docker-php-ext-install ffi). ffi.enable=1 for the CLI, or ffi.enable=preload plus the preload script for PHP-FPM (Deployment). A prebuilt libtessero for your platform in vendor\/tessero\/tessero\/lib\/ - \/. Release packages carry linux-x86 64, linux-aarch64, linux-musl-x86 64, darwin-arm64, darwin-x86 64 and windows-x86 64. On anything else run vendor\/bin\/tessero build (needs a C compiler) or set TESSERO LIB to a library you built. For linear algebra only: an LP64 OpenBLAS with LAPACKE (apt install libopenblas0 liblapacke, apk add openblas lapack, brew install openblas). The copy bundled with pip install scipy is found automatically. Set TESSERO BLAS to use another build. ILP64 builds are refused because they would silently truncate indices. Supported LAPACK: 3.11 or newer (Ubuntu 24.04, current Debian, Homebrew, the SciPy wheels). On LAPACK 3.10 (Ubuntu 22.04) Tessero runs safely, with workarounds for two LAPACKE 3.10 defects, but four functions may return different though valid values: signal.savgol filter and linalg.eig banded (eigenvector signs), linalg.subspace angles (a tiny angle returned as 0) and linalg.ordqz (sign and last digits). CI checks that 3.10 runs without a crash or any other difference. Option B: the native extension or from a source checkout: The extension compiles its own copy of the kernel (ext\/libtessero\/), so it needs neither ext-ffi nor the FFI package. It does not include LAPACK-based linear algebra, multi-axis reductions or .npy I\/O yet; install the FFI package alongside it when you need those (Choosing a backend). Option C: Laravel The service provider is auto-discovered. See the Laravel"},{"type":"Docs","title":"Deviations from the reference","url":"http:\/\/tessero.org\/docs\/deviations","section":null,"text":"Where the fixtures deviate from plain SciPy output A parity fixture normally holds the value NumPy or SciPy returned, and Tessero must match it at the default tolerance (relative 1e-13 for element-wise functions, 1e-12 for calls; random draws exactly). This page lists every exception and the rule behind it. Each rule is applied by the fixture generators (tools\/parity\/fixtures .py), never by editing a fixture, and the counts below are generated from the fixture files by tools\/parity\/report.py. The reference environment The fixtures are generated by tools\/parity\/gen-fixtures.sh, and the generators refuse to write outside it. The script disables NumPy's AVX-512 dispatch targets for float64 loops (NPY DISABLE CPU FEATURES=\"X86 V4 AVX512 ICL AVX512 SPR\") and fixes OpenBLAS's kernel and thread count. On AVX-512 machines NumPy evaluates exp, log, power, expm1, log1p, sinh and arcsin with its own vector kernels, which differ from the C library by an ulp on some inputs. The reference would then depend on the machine that generated it. With those targets disabled, NumPy's results equal the C library's; 200 000 inputs per function showed no difference. Each fixture file records this environment and NumPy's per-function dispatch under \"env\" (ADR 0012). Rules Guards: SciPy crashes or never returns. On some inputs SciPy itself segfaults, aborts or loops forever. Examples are the Mathieu functions at infinite arguments, the spheroidal wave functions for large parameters, and cdflib's non-central t sum. tools\/parity\/crash scan.py evaluates each row in a forked process and records those rows in tools\/parity\/crashes-special.json. The function's spec entry carries a guard: (or capped:), Tessero returns NaN there, and the fixture expects NaN. Undefined rows: SciPy's value is undefined. Some rows read memory SciPy's code never wrote. There are two ways to find them. tools\/parity\/ub scan.py runs SciPy's original code under AddressSanitizer. The generator also re-evaluates every reference"},{"type":"Docs","title":"Changelog","url":"http:\/\/tessero.org\/docs\/changelog","section":null,"text":"Changelog All notable changes are recorded here. The format follows Keep a Changelog, and the project uses Semantic Versioning (breaking changes are allowed in 0.x minor releases and are always listed; see docs\/operations\/upgrading.md). [Unreleased] Added Opt-in GPU-matching floating-point profile (csrc\/src\/fpenv.c, declared in tessero.h; feature fp flush profile). NVIDIA GPUs flush subnormal values to zero and expose no preserve mode, and NaN results can carry different bit patterns on different processors. tsr fpenv flush enter \/ tsr fpenv flush leave switch the calling thread to flush-to-zero for a scope and restore its previous state exactly; tsr flush subnormal f32 and tsr canon nan f32 normalise arrays in place with integer bit operations; tsr nan first f32 finds the first NaN, with f64 twins of the three array helpers. The flush scope is for f32 work only: NVIDIA GPUs keep f64 subnormals, so f64 inside a scope would diverge. Additive only: no existing function, default, golden or self-check changes, and nothing runs unless called. Reproducible-f32 transcendental primitives (tsr repro rsqrt f32, tsr repro exp2 f32, tsr repro exp f32, tsr repro erf f32; csrc\/src\/repro f32.c, declared in csrc\/include\/tessero.h). A new, original contribution, NOT part of the ported NumPy\/SciPy architecture. NumPy\/SciPy transcendentals are accuracy-first and defer to the system libm\/vendor math, which is not bit-reproducible across hardware, drivers, or SIMD width. These are reproducible by construction - built only from correctly-rounded f32 operations, giving one defined f32 bit-value on every SIMD width, thread count, and CPU ISA (and, via a mirrored GPU shader, the GPU). Proven bit-identical across scalar\/AVX2\/AVX-512\/NEON\/SVE, 1 vs 4 threads, and x86 == ARM (csrc\/repro\/ARCH MATRIX.md); four frozen goldens + canonical spec in csrc\/repro\/GOLDENS.md. Minimax coefficients are from Cephes (public domain) and Abramowitz & Stegun 7.1.26; the reproducible construction and the resulti"},{"type":"User guide","title":"Arrays","url":"http:\/\/tessero.org\/docs\/user-guide\/arrays","section":"User guide","text":"Arrays Tessero\\NDArray (FFI) and Tessero\\Ext\\NDArray (extension) are n-dimensional arrays of one element type, stored in native memory. The layout is NumPy's: a pointer into a memory block, a shape, and byte strides. Creating arrays Input must be rectangular: arr([[1, 2], [3]]) throws ShapeError. Only numbers and booleans are accepted. Strings throw DTypeError, and nothing is silently converted to 0. Element types dtype PHP value Bytes Notes --- --- ---: --- float64 float 8 default for floating input float32 float 4 half the memory; arithmetic stays in float32 int64 int 8 default for integer input; overflow wraps (two's complement), as in NumPy int32 int 4 uint8 int 1 images, masks, byte data bool bool 1 result of comparisons; used for masks complex128 [re, im] 16 full support on the FFI package; storage, arithmetic, real imag conj angle abs and FFT on the extension Type promotion follows NumPy 2 (NEP 50): Mixing two arrays promotes to the smallest type that holds both (int32 + float32 \u2192 float64, uint8 + int32 \u2192 int32). PHP scalars are weak : $float32Array->mul(2.5) stays float32 and $int32Array->add(1) stays int32. True division of integers gives float64. floorDiv and mod keep integers (with Python's sign rules for negative numbers). Comparisons give bool. Convert with astype('float32'). view('int64') reinterprets the bytes without converting them. Shape and memory These return views , which share memory and copy nothing: slicing (Indexing) transpose() and t(), swapAxes(), moveAxis() reshape() of a contiguous array expandDims(), squeeze(), broadcastTo(), view() Every computation returns a new C-contiguous array. copy() always copies. contiguous() copies only when the array is not already contiguous. A view keeps its memory block alive. The block is freed when the last array or view that uses it is destroyed, and never earlier. This is covered by tests; see Memory model. Writing through a view writes to the original: Getting data out Method Result --- --- toArray()"},{"type":"User guide","title":"Indexing and slicing","url":"http:\/\/tessero.org\/docs\/user-guide\/indexing","section":"User guide","text":"Indexing and slicing Tessero uses NumPy's indexing rules and Python's slice syntax, written as a string. Basic indexing returns views Rules: start:stop:step. Omitted parts take Python's defaults. Negative values count from the end. Out-of-range bounds are clipped, as in Python. A plain integer removes the axis. Out of range throws IndexError. ... stands for as many : as needed (at most one per index). None (or newaxis) inserts an axis of length 1. The index string is parsed in C on both backends. The same parser is used for sliceNative() and the extension's $a['\u2026'], and it is fuzz-tested against NumPy on random shapes. Assigning to a basic index writes into the array: Boolean masks return copies The mask must have the array's shape (or the shape of its leading axes). Integer arrays (fancy indexing) return copies With the extension, an integer array or PHP list inside [] selects rows: $x[[2, 0]]. Conditional selection Broadcasting Binary operations, where and assignment broadcast their operands the way NumPy does. Shapes are aligned from the right, and axes of length 1 stretch to match: Incompatible shapes throw ShapeError with both shapes in the message. Broadcasting never copies: the kernel reads broadcast axes with stride 0."},{"type":"User guide","title":"Maths, reductions, sorting","url":"http:\/\/tessero.org\/docs\/user-guide\/math","section":"User guide","text":"Element-wise maths, reductions and sorting Binary operations Method Operator (ext) NumPy --- --- --- add, sub, mul, div + - \/ add subtract multiply true divide pow power mod, floorDiv % remainder floor divide (Python sign rules) maximum, minimum NaN-propagating atan2, hypot eq ne lt le gt ge comparisons \u2192 bool logicalAnd logicalOr logicalXor \u2192 bool rsub, rdiv, rpow 2 - $a etc. reflected: the scalar on the left All of them broadcast and accept PHP scalars, PHP arrays or arrays. On the FFI package they take an optional out: array that receives the result, which avoids an allocation in hot loops: Integer overflow wraps (two's complement), exactly like NumPy. It is never undefined behaviour: the C kernel is tested under UBSan. Unary functions neg abs square sign sqrt exp log log10 log2 expm1 log1p sin cos tan arcsin arccos arctan sinh cosh tanh floor ceil rint reciprocal isnan isfinite isinf invert logicalNot, plus round($decimals) and clip($min, $max). The FFI package adds real imag conj angle for complex arrays. Integer input to a floating-point function (sqrt, exp, \u2026) gives float64. Reductions Accuracy: sum and mean use pairwise summation , like NumPy. The error grows with log n rather than n, so a million values sum to within a few ulps. mean, var and std are computed as NumPy computes them : the mean is the pairwise sum divided by n, and the variance is the pairwise sum of squared deviations from that mean. This is stable when the mean is large compared with the spread (unlike the textbook E[x\u00b2]\u2212E[x]\u00b2 formula), and bit-identical to NumPy on contiguous data. Reductions of integers accumulate in int64 (wrapping). The mean of integers is float64. NaN propagates through sum, min, max, mean, as in NumPy. Sorting sort is a radix sort for every dtype (an MSD pass, then cache-sized LSD passes, with buckets sorted in parallel when threads > 1). argsort is a stable LSD radix sort. NaN sorts last, as in NumPy. On 1M float64 values sort takes about 30 ms against NumPy's 7.5 ms"},{"type":"User guide","title":"Universal functions","url":"http:\/\/tessero.org\/docs\/user-guide\/ufuncs","section":"User guide","text":"Universal functions (Math) Tessero\\Math (FFI package) and Tessero\\Ext\\Math (native extension) are the universal-function interface, modelled on NumPy's ufuncs. The two classes have the same 74 functions, signatures and results: both call libtessero's loops, and a cross-backend test checks that they return identical bytes. Each function works element by element over arrays of any shape. It broadcasts its operands, follows NumPy's type rules, and can write into an output array you provide. The examples use the extension; with the FFI package write use Tessero\\Math; use Tessero\\NDArray as X; and the same lines run unchanged. The catalogue Kernel ufuncs run through the same C kernels as the NDArray methods and operators, so Math::sin($a) and $a->sin() return identical bytes: One input negative absolute abs square sign sqrt exp expm1 log log10 log2 log1p sin cos tan arcsin arccos arctan sinh cosh tanh floor ceil rint reciprocal isnan isinf isfinite invert real imag conj angle --- --- Two inputs add subtract multiply divide power mod remainder floorDivide maximum minimum arctan2 hypot equal notEqual less lessEqual greater greaterEqual logicalAnd logicalOr logicalXor Loop ufuncs are libtessero's typed inner loops (csrc\/src\/ufunc.c), shared by both packages: Function Result Reference --- --- --- cbrt cube root numpy.cbrt exp2 2^x numpy.exp2 trunc round towards zero; integers unchanged (same dtype) numpy.trunc arcsinh, arccosh, arctanh inverse hyperbolic functions numpy degrees, radians angle conversion numpy erf, erfc error function, complement scipy.special gamma, lgamma \u0393(x), log\\ \u0393(x)\\ scipy.special.gamma, gammaln signbit sign bit set (bool; true for \u22120.0) numpy.signbit fmax, fmin maximum\/minimum ignoring NaN; integer inputs stay integer numpy.fmax, fmin copysign, nextafter magnitude with another sign; next float numpy logaddexp, logaddexp2 log(e^x + e^y), log2(2^x + 2^y) numpy (same branches) fmod C remainder (sign of x); integers stay integer, x % 0 gives 0 numpy.fmod"},{"type":"User guide","title":"Linear algebra","url":"http:\/\/tessero.org\/docs\/user-guide\/linear-algebra","section":"User guide","text":"Linear algebra Tessero\\Linalg\\Linalg covers numpy.linalg and the most used parts of scipy.linalg. It calls LAPACK through LAPACKE (row-major) from an LP64 OpenBLAS. It is part of the FFI package; the extension does not include it. Stacks of matrices solve, inv, det, cholesky and eigh accept arrays of shape [..., n, n] and work on each matrix, as NumPy does. A batch of 10 000 2\u00d72 systems is one PHP call. Errors Exception When --- --- SingularMatrix solve, inv on an exactly singular matrix (LAPACK info > 0) NotPositiveDefinite cholesky ConvergenceError eig, eigh, svd did not converge ShapeError not square, or incompatible right-hand side LibraryUnavailable no LP64 OpenBLAS with LAPACKE was found All extend Tessero\\Exceptions\\LinAlgError (itself a TesseroException). Accuracy Every function is checked against numpy.linalg\/scipy.linalg on fixed fixtures to a relative tolerance of 1e-9; most agree to about 1e-15. Eigenvectors and singular vectors are compared up to sign, because LAPACK builds may choose different signs. Threads OpenBLAS starts one thread per core by default. Under PHP-FPM that oversubscribes the machine (every worker would start N threads), so Tessero sets OpenBLAS to 1 thread in non-CLI SAPIs. Change it with Tessero::setBlasThreads(n) or TESSERO BLAS THREADS."},{"type":"User guide","title":"FFT","url":"http:\/\/tessero.org\/docs\/user-guide\/fft","section":"User guide","text":"FFT Tessero\\Fft\\Fft follows numpy.fft. Any length Lengths are factored into radix 2, 3, 4 and 5 butterflies plus a generic odd-radix pass. Lengths with a large prime factor use Bluestein's algorithm, so cost stays O(n log n) for every n: a transform of 1 000 003 points (prime) takes about 0.55 s. Twiddle factors are computed directly with sin\/cos for every index (not by recurrence) and stored per level, so the error stays at the round-off level. Checked against numpy.fft at 1e-10 relative on 14 lengths, including primes 17, 97, 127 and 1031. The C tests also compare it with a long-double direct DFT. Performance About 1.5-2\u00d7 slower than NumPy's pocketfft (70-98 ms for 2^20 points against 48 ms). The real-input transform still runs a full complex transform internally. Both are on the roadmap. Extension Tessero\\Ext\\Engine::fft($x, inverse: false) transforms the last axis of a real or complex array with the same kernel and returns a complex128 array. toList() shows each element as [re, im], and real(), imag(), conj(), angle() and abs() work on the result."},{"type":"User guide","title":"Random numbers","url":"http:\/\/tessero.org\/docs\/user-guide\/random","section":"User guide","text":"Random numbers Tessero\\Random\\Generator reproduces NumPy's default generator bit for bit . PCG64 is seeded through SeedSequence, and normals come from the ziggurat method with NumPy's own tables: A model fitted in Python with a fixed seed can be rerun in PHP and produce the same draws. That makes Monte Carlo results reproducible across the two languages and lets tests compare them exactly. Method Stream-identical to NumPy --- --- random, uniform yes normal, standardNormal yes (ziggurat) integers yes (Lemire's method; 32- and 64-bit paths) choice (with\/without replacement, with p) yes permutation, shuffle yes exponential, gamma, beta, poisson, binomial, ... (the univariate distribution methods) yes: NumPy's own distribution code The distribution methods run NumPy's distributions.c, compiled into the kernel, on the Generator's PCG64 stream. They take NumPy's arguments, with array parameters broadcast, size:, and dtype: 'float32' where NumPy has it. They reject invalid parameters as NumPy does. The multivariate methods (multivariate normal, dirichlet, multinomial) are not implemented yet. Seeds: a non-negative int, a list of ints (like NumPy's entropy lists), or null for 128 bits from the operating system. Saving and restoring state Use this to split a long simulation across queued jobs without losing reproducibility. Extension The extension has the same generator, Tessero\\Ext\\Random\\Generator, with the same streams: It has every method above except choice. The stateless Tessero\\Ext\\Engine::random(), normal() and integers() remain for existing code. Not a CSPRNG PCG64 is for simulation. Use random bytes() \/ random int() for tokens, passwords and anything security-related."},{"type":"User guide","title":"Statistics and special functions","url":"http:\/\/tessero.org\/docs\/user-guide\/statistics","section":"User guide","text":"Statistics and special functions Three classes follow scipy.special, scipy.stats and NumPy's statistics functions name for name. Method names are the SciPy\/NumPy names in camelCase (ttest ind \u2192 ttestInd, log ndtr \u2192 logNdtr), and keyword arguments are PHP named arguments. Arguments can be PHP numbers, PHP arrays or NDArrays, with NumPy broadcasting. FFI package Extension Follows --- --- --- Tessero\\Special Tessero\\Ext\\Special scipy.special Tessero\\Stats Tessero\\Ext\\Stats scipy.stats Tessero\\Np Tessero\\Ext\\Np NumPy statistics, set and search functions Both backends run the same kernel code, so they return the same bits. Every function is checked against values generated by NumPy\/SciPy. The coverage page lists what exists, and the reference deviations page lists where a result deliberately differs from SciPy's. Distributions A distribution call returns a frozen distribution, as in SciPy: The methods are pdf\/pmf, logpdf\/logpmf, cdf, logcdf, sf, logsf, ppf, isf, stats, mean, var, std, median, entropy, moment, support, interval and rvs. They behave as SciPy's public methods do, including outside the support and for invalid parameters (NaN). Where SciPy computes something numerically (moments by integration, quantiles by root finding), Tessero runs the same algorithm: SciPy's QUADPACK and brentq, vendored. rvs draws from the Tessero Generator passed as randomState, through NumPy's own sampling code, so the draws equal SciPy's. Tests, correlation and descriptive statistics Functions that return a SciPy result object return an associative array with the same field names: axis, keepdims and nan policy (as nanPolicy) work as in SciPy. NumPy statistics Also available: the nan-reductions (nanmean, nanmedian, nanstd, ...), average, ptp, histogram, bincount, digitize, cov, corrcoef, unique and the set operations, partition, lexsort, searchsorted, correlate and convolve. Special functions The special functions run the code SciPy itself runs: xsf, Boost.Math and SciPy's own C and C+"},{"type":"User guide","title":"Sparse matrices","url":"http:\/\/tessero.org\/docs\/user-guide\/sparse","section":"User guide","text":"Sparse matrices Tessero\\Sparse\\CsrMatrix is a float64 compressed-sparse-row matrix, the same layout as scipy.sparse.csr matrix. Other constructors: fromDense($array), fromArrays($indptr, $indices, $data, $shape) and identity($n). Iterative solvers cg (conjugate gradient) and bicgstab use a Jacobi (diagonal) preconditioner and SciPy's stopping rule, \u2016r\u2016 \u2264 max(rtol\u00b7\u2016b\u2016, atol). They return [$x, $info]. info is 0 on convergence and otherwise the number of iterations run. With throw: true they throw ConvergenceError instead. The whole iteration runs in C: one PHP call, no per-iteration overhead. The example above (100 000 unknowns) converges to rtol 1e-10 in about 20 ms (measured on a 2-core VM). Iteration counts grow with the condition number: the 1-D Poisson matrix (2 on the diagonal) of the same size needs tens of thousands of CG iterations, whatever the implementation. Limits There is no direct sparse solver (spsolve), no CSC\/COO classes and no sparse \u00d7 sparse product yet (roadmap). For Markov decision processes the transition matrix is stored as CSR internally; see MDP."},{"type":"User guide","title":"Optimisation","url":"http:\/\/tessero.org\/docs\/user-guide\/optimization","section":"User guide","text":"Optimisation, roots and curve fitting These follow scipy.optimize. The objective functions are PHP callables, so they are driven from PHP; the linear algebra inside them runs natively. For linear and mixed-integer programs, see Linear programming. Those solvers run entirely in C. minimize Method Notes --- --- BFGS (default) SciPy's algorithm, including its Wolfe line search; same iterates as SciPy on the test problems L-BFGS-B projected L-BFGS with bound constraints; same optimum as SciPy, different path Nelder-Mead same iterates as SciPy (adaptive option supported) Options go in options: ['maxiter' => \u2026, 'gtol' => \u2026, 'xatol' => \u2026, 'fatol' => \u2026] with SciPy's names. Without jac the gradient is approximated by forward differences, using SciPy's step size. Roots brentq gives the same root and the same number of function calls as SciPy. Least squares and curve fitting curveFit scales the covariance as SciPy does, and supports sigma and absoluteSigma. Limits There are no trust-region methods and no general nonlinear constraints (only bounds, through L-BFGS-B). Use the LP\/MILP solvers for linear constraints."},{"type":"User guide","title":"Linear programming","url":"http:\/\/tessero.org\/docs\/user-guide\/linear-programming","section":"User guide","text":"Linear and mixed-integer programming Tessero\\Optimize\\LinearProgramming solves with the conventions of scipy.optimize.linprog and scipy.optimize.milp. The solve runs entirely in C: one PHP call per problem. linprog Marginals (shadow prices) are the change in the objective per unit increase of each right-hand side, with SciPy's signs. Here one more hour of assembly raises profit by 20, and one more hour of machining raises it by 10. They tell you which constraint is worth relaxing. eqlinMarginals covers equality rows and reducedCosts covers the variables. Bounds bounds: Meaning --- --- null (default) every variable in [0, +\u221e) [lo, hi] the same bounds for every variable [[lo0, hi0], [lo1, hi1], \u2026] one pair per variable Use null or \u00b1INF for an open side: [null, null] is a free variable. Status status success Meaning ---: --- --- 0 true optimal 1 false iteration limit (maxiter); x holds the last point 2 false infeasible 3 false unbounded 4 false numerical difficulties Malformed input is rejected before the solver runs: wrong shapes throw ShapeError, and NaN or \u00b1INF in c, A or b (NaN in bounds) throws InvalidArgumentException (ValueError from the extension), as SciPy does. Infinite bounds are allowed. milp integrality is true (all variables integer), false, or a per-variable list of 0\/1 (SciPy's convention). nodeLimit caps the search; if it is hit with a feasible solution in hand, status is 1 and x is the best solution found so far. Check gap() to see how far from optimal it may be. mipRelGap stops early once the gap is small enough. Method and limits linprog: dense two-phase primal simplex on a full tableau. Pricing is Dantzig's rule, switching to Bland's rule after a run of degenerate pivots (no cycling). The ratio test is Harris's two-pass test (stable pivots). Bounds are handled by substitution. milp: depth-first branch and bound on that simplex, branching on the most fractional variable and exploring the nearer child first. Checked against SciPy's HiGHS on 14 LPs (o"},{"type":"User guide","title":"Markov decision processes","url":"http:\/\/tessero.org\/docs\/user-guide\/mdp","section":"User guide","text":"Markov decision processes Tessero\\Mdp\\MarkovDecisionProcess solves finite MDPs: a set of states, a set of actions, transition probabilities P(s' s, a) and expected immediate rewards R(s, a). The result is the policy (the best action in each state) that maximises the expected discounted reward, together with each state's value. Every solver loop runs in C. Typical uses are maintenance and replacement decisions, inventory and ordering, asset dispatch under uncertain prices, and pricing and admission control. Building a model Three constructors, all producing the same internal form: R may also be (S,) (a reward per state, the same for every action) or (A, S, S) (a reward per transition, reduced to expectations). The model is validated by default. Every row of P must be finite, non-negative and sum to 1 (within 1e-8). The error names the offending state and action, for example \"Transition probabilities of state 0 under action 0 sum to 0.9, not 1\" (TesseroException; Tessero\\Ext\\Exception on the extension). Rewards must be finite, and CSR input must be well formed (indptr starting at 0, non-decreasing, ending at the number of non-zeros; indices in range). These two checks always run. Pass validate: false to skip only the probability check, for models you have already checked. Internally, transitions are held as one CSR matrix with A\u00b7S rows (row a\u00b7S + s is the distribution after action a in state s). Memory is proportional to the number of non-zero transitions, so a model with a million states and a few successors per state fits comfortably. Solving Method When to use --- --- valueIteration Any size. Stops when the sup-norm change is below \u03b5(1\u2212\u03b3)\/(2\u03b3), which guarantees an \u03b5-optimal policy. For \u03b3 = 1 it stops on the span of the change. policyIteration() (exact) Up to a few thousand states. Each policy is evaluated exactly by LU (O(S\u00b3)). Usually converges in 3-10 iterations. policyIteration(evalSweeps: k) Large models. Modified policy iteration, often several times faster th"},{"type":"User guide","title":"Input and output","url":"http:\/\/tessero.org\/docs\/user-guide\/io","section":"User guide","text":"Input and output Choosing a format Need Use Why --- --- --- Exchange with Python\/NumPy .npy \/ .npz NumPy's own format; exact; memory layout preserved Store in a database column binary cast {\"dtype\",\"shape\",\"b64\"} exact to the bit, ~2.7\u00d7 smaller than JSON for float64, no float parsing Send to a browser or API client toJson() \/ response()->ndarray() written from native memory in one pass Cache, queue payload, session serialize() dtype + shape + raw bytes; exact Another process or language toBytes() + dtype + shape raw little-endian, C order Spreadsheet or CSV toArray() then your CSV writer Tessero has no CSV parser; PHP's fgetcsv\/fputcsv are fine NumPy files Format versions 1.0, 2.0 and 3.0 are read (1.0 or 2.0 written), as are C and Fortran order (Fortran-order files load as C-order copies; map them with NDArray::load($path, 'r') to keep the file layout) and every Tessero dtype. The parity suite reads files written by NumPy and checks every byte. Npy::load (and NDArray::load(), on either backend) reads the header with libtessero's strict, fuzzed parser: it never evaluates the header dictionary and rejects object arrays (dtype=object) and pickles. Loading an untrusted .npy file is therefore safe in the way numpy.load(..., allow pickle=False) is. Size limits are still your job (a header can declare a huge shape, and the whole file is read into PHP memory first); see Security. Raw bytes JSON For large arrays prefer toJson() over json encode($a->toList()), because it skips building the PHP array. On 1M float64 values it takes 61 ms (FFI, integer-valued data) or 148 ms (extension, general floats), against 216 ms for json encode($a->toList()). NaN and \u00b1INF have no JSON representation. toJson() writes them as null, while json encode($a) fails on them as it does for plain PHP floats. If null is not what the client expects, replace them first, e.g. NDArray::where($a->isfinite(), $a, 0). serialize Both array classes implement serialize\/ unserialize. Views are serialized as com"},{"type":"User guide","title":"Memory-mapped arrays","url":"http:\/\/tessero.org\/docs\/user-guide\/memmap","section":"User guide","text":"Memory-mapped arrays NDArray::memmap() turns a file into an array without reading it. The data pointer is the address the operating system returns from mmap() (MapViewOfFile() on Windows). Pages are loaded when they are touched and dropped under memory pressure, so a PHP process can work on files far larger than its RAM, and several processes can share one file's pages. Both backends have the same calls and error behaviour (Tessero\\NDArray::memmap() in the FFI package): the mapping code is libtessero's tsr mmap , shared by the two bindings. The Laravel facade has the same call: Tessero::memmap($file, 'r', [..]). .npy files NumPy's .npy format carries dtype and shape in a header, so a file written by Python can be opened, or mapped, without passing either: Supported: format versions 1.0, 2.0 and 3.0; little-endian float64, float32, int64, int32, uint8, bool, complex128; C or Fortran order (Fortran-order files map with Fortran strides, and load() returns a C-order copy). Big-endian and structured dtypes are refused with a dtype error. The header parser is libtessero's tsr npy header, which is fuzzed in CI (testing). Modes Modes follow numpy.memmap: Mode File Array Notes --- --- --- --- 'r' must exist and be large enough read-only writes, assign, and use as out throw; the pages are mapped read-only as a second line of defence 'r+' (default) must exist; extended when shorter than offset + shape read\/write changes reach the file 'w+' created, or truncated, then sized to offset + shape (zero-filled) read\/write shape is required 'c' must exist read\/write in this process only copy-on-write: the file never changes; flush() does nothing Parameters: memmap(string $filename, string $mode = 'r+', ?array $shape = null, string $dtype = 'float64', int $offset = 0). offset is a byte offset into the file. It must be a multiple of the item size, and it need not be page-aligned: the mapping starts at the page boundary below it. Without shape, the array is 1-D with as many items as fit"},{"type":"User guide","title":"Laravel","url":"http:\/\/tessero.org\/docs\/user-guide\/laravel","section":"User guide","text":"Laravel tessero\/laravel connects Tessero to Laravel 12 and newer (12 and 13 today). Laravel 10 and 11 are not supported: every release on those lines is affected by security advisories that will not be fixed there. What you get Piece Purpose --- --- TesseroServiceProvider (auto-discovered) config, TesseroManager singleton, runtime settings, response macro, tessero:doctor Tessero facade array, zeros, fromBytes, memmap, load, openMemmap, linprog, milp, solveMdp, normal, random, info, backend Casts\\AsNDArray (alias Casts\\TensorCast) Eloquent column \u21c4 array Rules\\NumericArray validates request input before it becomes an array response()->ndarray($a) JSON response written from native memory Backends TESSERO BACKEND=auto (default) uses the native extension when it is loaded and the FFI package otherwise. Arrays come back as Tessero\\Ext\\NDArray or Tessero\\NDArray. Both have the same core API, and solver results from the facade are plain PHP arrays with the same keys on either backend, so controllers and jobs do not depend on which one is installed. Set ext or ffi to require one. Boot then fails loudly if it is missing, which is useful in production images. Configuration config\/tessero.php. Every key can be set from the environment: Key Env Default Meaning --- --- --- --- backend TESSERO BACKEND auto auto, ext, ffi threads TESSERO THREADS 1 OpenMP threads for large element-wise kernels and MDP sweeps memory budget TESSERO MEMORY BUDGET 268435456 (256 MiB) native memory cap per worker, bytes; 0 = unlimited blas threads TESSERO BLAS THREADS 1 OpenBLAS threads (FFI linear algebra) epsilon TESSERO EPSILON 1e-6 default MDP tolerance cast format TESSERO CAST FORMAT json default storage format for casts max elements TESSERO MAX ELEMENTS 1 000 000 default cap for validation threads, memory budget, blas threads and epsilon are applied at boot and re-applied at the start of every Octane request and task, and before every queued job . Long-lived workers therefore never carry one reque"},{"type":"Operations","title":"Overview","url":"http:\/\/tessero.org\/docs\/operations\/index","section":"Operations manual","text":"Operations manual This manual is for the people who install, run and support Tessero in production: platform engineers, SREs, and developers who own a service end to end. It assumes you know how PHP runs in your environment (FPM, Octane, queue workers, CLI). Page Read it when --- --- Deployment Putting Tessero on a server for the first time: CLI, FPM with preload, Octane, queue workers Native extension Building, packaging and rolling out ext-tessero Docker Building images (Debian and Alpine), multi-stage builds Configuration reference Every INI setting, environment variable and config key in one place Memory and threads Sizing workers, setting the native memory budget, choosing thread counts Monitoring What to measure, health checks, logs Performance tuning A workload is slower than expected Troubleshooting An error message or symptom, and what to do about it Runbooks Step-by-step responses to incidents Security Hardening, untrusted input, reporting vulnerabilities Upgrading Moving between versions Soak testing Proving that long-lived workers do not accumulate memory, mappings or descriptors The operating model in one page Two memory pools. PHP's memory limit covers PHP values. Array data lives in native memory, allocated by libtessero and not counted by memory limit. Each process has its own counter and optional budget (memory budget). Set the budget; it turns a runaway allocation into an exception instead of an OOM kill. Memory is freed deterministically. A native block is freed when the last PHP object that references it is destroyed. There is no separate garbage collector and no finaliser queue. Threads are opt-in. Kernels run on one thread unless you raise threads. Under FPM, parallelism comes from having many workers. Raise threads for CLI jobs and dedicated worker pools. Settings are per process. Threads, budget and tolerance are process-wide. The Laravel provider re-applies them per request and per job. Outside Laravel, set them at bootstrap. Two backends, i"},{"type":"Operations","title":"Deployment","url":"http:\/\/tessero.org\/docs\/operations\/deployment","section":"Operations manual","text":"Deployment 1. Check the machine doctor exits non-zero when something needs attention, so it can gate a deployment pipeline. Run it with the same php.ini as production (for FPM: php -c \/etc\/php\/8.4\/fpm\/php.ini vendor\/bin\/tessero doctor). The CLI often has a different configuration. 2. Pick the backend per runtime Runtime Recommended Configuration --- --- --- CLI scripts, cron, artisan commands either FFI: ffi.enable=1, or preload (the CLI SAPI may still call FFI::cdef) Queue workers (queue:work, Horizon) extension, or FFI same as CLI; set threads for dedicated heavy queues PHP-FPM \/ Apache mod php extension FFI needs ffi.enable=preload + the preload script (below) Octane (Swoole, RoadRunner, FrankenPHP) extension FFI: preload as for FPM, or ffi.enable=1 if you accept that risk (see Security) 3. PHP-FPM and Apache With the extension (simplest) Enable it for the FPM SAPI and restart FPM. Nothing else is needed. With the FFI package Keep PHP's secure default ffi.enable=preload and preload the library: vendor\/bin\/tessero php-ini prints these lines with your real paths. What the preload script does: 1. Writes a small header with #define FFI SCOPE \"tessero\" and define FFI LIB \" \" to the temp directory and calls FFI::load() on it. 2. Does the same for the first LP64 OpenBLAS with LAPACKE it finds (scope tessero blas). TESSERO BLAS overrides the search. 3. Preloads every class under src\/. This is required. With ffi.enable=preload, PHP lets only preloaded code call FFI APIs such as FFI::new and FFI::cast. Preloaded code is fixed when FPM starts. Restart (not reload) FPM after every composer install\/update that changes Tessero, or requests will run the old code against the new library. Verify on a staging host with the same check CI runs: It starts php -S with ffi.enable=preload and FFI::cdef forbidden, and runs arithmetic and LAPACK through the preloaded scopes. 4. Octane Prefer the extension. Octane workers are long-lived, and the extension has no preload step to keep in syn"},{"type":"Operations","title":"Native extension","url":"http:\/\/tessero.org\/docs\/operations\/native-extension","section":"Operations manual","text":"Native extension (ext-tessero) Building Requirement Notes --- --- PHP 8.2-8.5 headers (php-dev \/ php8.x-dev) the extension uses the stable Zend API; one build per PHP minor version and thread-safety mode GCC \u2265 9 or Clang \u2265 12 C11 atomics; GCC target clones gives AVX2\/AVX-512 paths on x86-64 libgomp only with OpenMP (the default). config.m4 links -lgomp; when building with Clang, install libgomp or pass --disable-tessero-openmp The build compiles ext\/libtessero\/ .c (a copy of csrc\/) into the module. Kernel symbols are compiled with hidden visibility, and a linker version script (ext\/tessero.map) keeps the ifunc symbols that GCC's target clones would otherwise export. The module exports only get module (CI checks this with nm), so it can share a process with the FFI library. Windows: config.w32 is provided (--enable-tessero). OpenMP is not enabled on Windows builds. Installing with PIE PIE (the PHP Foundation's installer) builds the release source for the running PHP and writes the INI file. Pin a version in production: pie install tessero\/tessero-ext:0.2.0. Packaging for a fleet Build once per (PHP minor, NTS\/ZTS, architecture, libc) and ship the .so: A module built for one PHP minor version will not load in another. PHP refuses it with \"Module compiled with module API=\u2026\". Rebuild per version. Configuration INI Default Changeable Meaning --- --- --- --- tessero.threads 1 anywhere (ini set) OpenMP threads for large element-wise kernels and MDP sweeps; capped at 4 \u00d7 cores tessero.memory budget 0 (unlimited) anywhere native memory cap per process; accepts 256M, 2G tessero.epsilon 1e-6 anywhere default MDP tolerance Settings are re-applied from INI at the start of every request (RINIT), so a value changed at runtime with Engine::setMaxThreads() lasts for the current request only. That makes FPM and Octane workers safe by default. Verifying a host Engine::info() returns extension, kernel, simd (baseline, avx2, avx512, neon), openmp, threads, memory in use, memory peak, me"},{"type":"Operations","title":"Docker","url":"http:\/\/tessero.org\/docs\/operations\/docker","section":"Operations manual","text":"Docker The repository ships a reference image, docker\/Dockerfile: PHP-FPM with ext-tessero, the FFI package, OpenBLAS\/LAPACKE and production INI settings (docker\/tessero.ini). The build has two stages: 1. build : compiles libtessero (and runs its C tests), then compiles the extension against the image's PHP and runs the phpt suite. A failing test fails the image build. 2. runtime : php: -fpm-bookworm, plus libgomp1 (OpenMP), libopenblas0-pthread and liblapacke (linear algebra), ffi and opcache, the compiled extension, and the FFI package under \/opt\/tessero. It ends with a smoke check that both backends load. In an application image you would normally get the FFI package through Composer (vendor\/tessero\/tessero) and copy only the extension from the build stage. Point opcache.preload at vendor\/tessero\/tessero\/resources\/preload.php. Alpine Alpine uses musl. Use the linux-musl-x86 64 binary for the FFI package, and build the extension in an Alpine stage: Alpine's lapack package does not include the LAPACKE C interface on every release. If tessero doctor reports no LAPACKE, use the Debian image for linear algebra workloads. The extension does not need LAPACK. Resource limits in containers Set tessero.memory budget (or TESSERO MEMORY BUDGET) so that pm.max children \u00d7 (memory limit + memory budget) fits inside the container's memory limit (Memory and threads). OpenMP detects the host's CPUs, not the container's CPU quota. Keep tessero.threads at 1 under FPM, and set it explicitly (not \"all cores\") for worker containers. OpenBLAS likewise starts one thread per host CPU by default. The FFI package sets it to 1 in non-CLI SAPIs; set TESSERO BLAS THREADS for CLI workers. Status The Dockerfile is built by CI (docker job). It has not been built in the reference environment, which has no container daemon."},{"type":"Operations","title":"Configuration reference","url":"http:\/\/tessero.org\/docs\/operations\/configuration-reference","section":"Operations manual","text":"Configuration reference Every setting that affects Tessero, by where it is set. php.ini: extension Setting Default Scope Effect --- --- --- --- extension=tessero php.ini loads ext-tessero tessero.threads 1 PHP INI ALL OpenMP threads for element-wise kernels on \u2265 131 072 elements and MDP sweeps on > 4 096 state-action pairs. Clamped to [1, 4 \u00d7 cores]. 1 when built without OpenMP tessero.memory budget 0 PHP INI ALL native memory cap for extension arrays and solver workspaces, bytes (256M, 2G accepted). 0 = unlimited tessero.epsilon 1e-6 PHP INI ALL default tolerance of Engine::mdpValueIteration The extension re-applies tessero.threads and tessero.memory budget at every request start, so runtime changes last for one request. php.ini: FFI package Setting Recommended Effect --- --- --- ffi.enable preload (FPM), 1 or preload (CLI) preload allows FFI only from preloaded code, plus the CLI opcache.enable 1 required for preloading opcache.preload \u2026\/vendor\/tessero\/tessero\/resources\/preload.php binds libtessero and BLAS at startup opcache.preload user the FPM pool user preload runs as this user opcache.jit any all suites pass with JIT off, function and tracing (see upstream bugs) Environment variables Variable Read by Effect --- --- --- TESSERO LIB FFI package, preload absolute path of libtessero to load instead of the bundled binary; process environment only, refused when relative or when the file or its directory is group\/world-writable TESSERO BLAS FFI package, preload absolute path of an LP64 OpenBLAS\/LAPACKE library; same checks as TESSERO LIB TESSERO BLAS THREADS FFI package OpenBLAS threads (default: 1 outside the CLI) TESSERO BACKEND Laravel auto, ext, ffi TESSERO THREADS Laravel \u2192 threads TESSERO MEMORY BUDGET Laravel; FFI package outside the CLI \u2192 memory budget (bytes). The FFI package also reads it at load in non-CLI SAPIs: a positive value sets the budget, 0 or -1 opts out of the default max(256 MiB, memory limit) TESSERO EPSILON Laravel \u2192 epsilon TESSERO CAST FORM"},{"type":"Operations","title":"Memory and threads","url":"http:\/\/tessero.org\/docs\/operations\/memory-and-threads","section":"Operations manual","text":"Memory and threads Where the memory goes Pool Holds Limited by Seen by --- --- --- --- PHP (Zend) heap PHP values, objects, toArray() results, JSON strings memory limit memory get usage(), Laravel --memory Native (libtessero) array data, LP tableaux, MDP workspaces, sort scratch memory budget memoryInUse(), peakMemory() File mappings (NDArray::memmap, extension) pages of mapped files the OS page cache (evictable) Engine::info()['memory mapped'], RSS for resident pages OpenBLAS \/ OpenMP runtimes thread stacks and buffers the libraries themselves the process RSS only The array objects themselves are small PHP objects (well under 1 KB). The data they point to is native. A 1 000 \u00d7 1 000 float64 array uses 8 MB that memory limit does not see. Converting data between the pools briefly needs both: toList() on a 1M-element float64 array allocates about 17 MB of PHP memory (a PHP array costs 16 bytes per element), while the 8 MB native block still exists. Prefer toJson(), toBytes() or serialize() at API and storage boundaries. The budget An allocation that would take the process past its budget fails cleanly: MemoryError (FFI) or Tessero\\Ext\\MemoryException, with the requested size, the amount in use and the budget in the message. Nothing is partially allocated, the process keeps running, and the exception can be caught. The budget counts every array, and the O(m\u00b7n) workspaces of the LP and MILP solvers, MDP policy evaluation and sorting. Small O(n) solver bookkeeping uses the system allocator and is not counted. Sizing For PHP-FPM: Start from the largest array a request legitimately needs, multiply by 3 (input, one temporary, result), and round up. Validation caps (NumericArray(maxElements: \u2026)) should keep requests well under it. For queue workers doing large solves, size the budget for the model. A dense LP with m constraints and n variables needs about 8\u00b7(m+1)\u00b7(n+m+1) bytes for its tableau. Exact policy iteration on S states needs 8\u00b7S\u00b2 bytes. Deterministic release Native"},{"type":"Operations","title":"Monitoring","url":"http:\/\/tessero.org\/docs\/operations\/monitoring","section":"Operations manual","text":"Monitoring Health checks Check Command Healthy --- --- --- Installation vendor\/bin\/tessero doctor exit code 0 Machine-readable facts vendor\/bin\/tessero info --json JSON with libtessero, simd, blas, openmp Laravel php artisan tessero:doctor --json backend is what you deployed Extension php -r 'echo Tessero\\Ext\\Engine::version();' the version you deployed Run the check in the same SAPI and php.ini as production. For FPM, expose a small internal endpoint rather than relying on the CLI: Add a functional probe that computes something small and checks the answer, so a broken BLAS or a wrong binary is caught as well as a missing one: Metrics worth exporting Metric Source Why --- --- --- native bytes in use Engine::memoryInUse() \/ Tessero::memoryInUse() at request\/job end should return to a baseline. A rising floor is a leak in application code (arrays held in statics) native peak peakMemory() budget headroom. Alert when the peak approaches the budget mapped bytes Engine::info()['memory mapped'] file mappings held by the process; should return to 0 when memmaps go out of scope MemoryError \/ MemoryException count exception handler requests hitting the budget: either raise the budget or tighten input validation solver status counts status field of LP\/MILP\/MDP results a rise in 1 (limit) or 4 (numerical) means models have grown or become ill-conditioned solve duration wrap calls in your timer capacity planning for queue workers nodes \/ iterations solver results early warning before limits are hit Example: a Laravel job middleware that records memory and duration. Logs Tessero writes no logs of its own. Everything it has to report arrives as an exception or a result status. Log: exception class and message. Messages include shapes, sizes and the offending state\/action or constraint. solver message and status for non-optimal results. the backend and version once at worker start (TesseroManager::info()). What not to alert on The first request after an FPM restart being slower: pr"},{"type":"Operations","title":"Performance tuning","url":"http:\/\/tessero.org\/docs\/operations\/performance-tuning","section":"Operations manual","text":"Performance tuning Measure first: vendor\/bin\/tessero bench runs the benchmark suite (bench\/run.php) with its regression gates on your hardware. bench\/numpy bench.py runs the NumPy counterparts for comparison. 1. Cross the PHP boundary as rarely as possible Most slow Tessero code spends its time converting between PHP arrays and native arrays, or making many calls on small arrays. Instead of Do --- --- foreach over elements calling item() one vectorised expression building a PHP array in a loop, then arr() build it once, convert once; or fromBytes() from a binary source json encode($a->toList()) $a->toJson() or response()->ndarray($a) storing arrays as JSON columns and decoding per request the binary cast (no float parsing) thousands of calls on 10-element arrays through FFI the extension (0.3 \u00b5s per call against 9 \u00b5s), or batch the small arrays into one larger array Per-call overhead, measured on a 2-core VM with PHP 8.4: 10-element add 1M-element add --- ---: ---: plain PHP loop 0.28 \u00b5s ~25 ms extension 0.28 \u00b5s ~1 ms FFI 8.7 \u00b5s ~1 ms For large arrays the backend does not matter. For small ones it dominates. 2. Avoid temporaries in hot loops $a->add($b)->mul(2) allocates two arrays. On the FFI package pass out:: The allocator does not zero memory (except for zeros()), and blocks of 32 MiB or more are aligned for transparent huge pages. Large temporaries are cheap to allocate, but still cost a pass over memory. 3. Keep data contiguous for repeated work Views with unusual strides (transposed, reversed, step > 1) work everywhere, but repeated heavy operations on them are faster after one copy(). Reductions along the last axis of a C-contiguous array are the fastest case. 4. Pick the right solver settings Workload Setting --- --- MDP with more than a few thousand states policyIteration(evalSweeps: 10-50) (modified PI) rather than exact PI (O(S\u00b3)) or plain VI MDP with \u03b3 close to 1 VI needs about log(\u03b5)\/log(\u03b3) sweeps: prefer (modified) policy iteration MILP taking too lon"},{"type":"Operations","title":"Troubleshooting","url":"http:\/\/tessero.org\/docs\/operations\/troubleshooting","section":"Operations manual","text":"Troubleshooting Find the message or symptom, then follow the fix. tessero doctor catches most installation problems. Installation and loading FFI API is restricted by \"ffi.enable\" configuration directive The FFI package was called from non-preloaded code with ffi.enable=preload (typically under FPM). Configure the preload script (Deployment) and restart FPM, or install the extension. LibraryUnavailable: libtessero X does not match tessero\/tessero Y The binary is from a different release than the PHP code: usually TESSERO LIB points to an old build, or a deploy replaced the vendor directory but not a cached library. Tessero refuses to run rather than risk mismatched struct layouts. Remove TESSERO LIB, or rebuild with make -C vendor\/tessero\/tessero\/csrc. A message ending in Failed resolving C function means the same thing. LibraryUnavailable: No prebuilt libtessero for There is no binary for this OS\/architecture\/libc in lib\/. Run vendor\/bin\/tessero build (needs a C compiler), or build elsewhere and set TESSERO LIB=\/abs\/path\/libtessero.so. LibraryUnavailable for linear algebra \/ \"no LP64 OpenBLAS with LAPACKE\" Install libopenblas0 and liblapacke (Debian\/Ubuntu), openblas (macOS Homebrew), or point TESSERO BLAS at a library. ILP64 builds (64-bit integers, often named libopenblas64 ) are refused on purpose. PHP Warning: Module \"tessero\" is already loaded \/ Module compiled with module API=\u2026 The INI enables the extension twice, or the .so was built for another PHP version. Check php --ini and rebuild with that version's phpize. undefined symbol: omp get num procs or libgomp.so.1: cannot open shared object file The extension was built with OpenMP but the runtime image lacks libgomp. Install libgomp1 (Debian) or libgomp (Alpine), or rebuild with disable-tessero-openmp. The Laravel app uses FFI although the extension is installed The extension is not loaded for that SAPI (php-fpm -m grep tessero), or TESSERO BACKEND=ffi is set. tessero:doctor shows the backend. Runtime errors"},{"type":"Operations","title":"Runbooks","url":"http:\/\/tessero.org\/docs\/operations\/runbooks","section":"Operations manual","text":"Runbooks Step-by-step responses to the incidents most likely to involve Tessero. Each starts with how to confirm the cause, because the symptom often has another cause. RB-1: Workers killed by the OOM killer \/ container restarts Confirm: dmesg grep -i oom or the orchestrator's events show kills; PHP logs show no Allowed memory size exhausted. Native memory is invisible to memory limit, so this is the likely source. 1. Check the configured budget in the affected SAPI: php -r 'var dump(Tessero\\Ext\\Engine::memoryBudget());' (or Tessero::memoryBudget()). If it is 0 (unlimited), that is the problem. 2. Set a budget (sizing) and redeploy. Over-budget requests now fail with a catchable exception instead of killing the worker. 3. Find what allocates. Log memoryInUse()\/peakMemory() per request or job (Monitoring). Check request sizes against validation caps. 4. If memoryInUse() does not return to baseline between jobs, look for arrays kept in static properties, singletons, or long-lived collections. Resolved when: kills stop, and MemoryError rates are known and acceptable. RB-2: Spike in MemoryError \/ MemoryException Confirm: error tracker grouping by exception class. 1. Read the message: it gives the requested size, the amount in use and the budget. 2. If the requested size is large, an input grew. Find the endpoint or job, and check whether the validation cap (maxElements) should reject it. 3. If in use is already near the budget before the request, something accumulates. Follow RB-1 step 4. 4. If the workload legitimately grew, raise the budget and, if needed, the container memory, keeping max children \u00d7 (memory limit + budget) within limits. RB-3: FPM returns 500 after a deploy: \"FFI API is restricted\" Confirm: the FFI package is in use under FPM with ffi.enable=preload, and the error started with a deploy. 1. Preloaded code is fixed at FPM start. If the deploy changed Tessero, FPM must be restarted , not reloaded: systemctl restart php8.4-fpm. 2. Check opcache.preload p"},{"type":"Operations","title":"Security","url":"http:\/\/tessero.org\/docs\/operations\/security","section":"Operations manual","text":"Security Threat model Tessero is a computation library. It opens no sockets, spawns no processes (apart from tessero build, which runs make), reads files only when you call Npy::load\/loadZ, and evaluates no code from data. The relevant risks are: 1. Resource exhaustion from attacker-controlled sizes: huge arrays, huge LP\/MDP models, many small requests that each allocate. 2. Memory safety in the C kernel and the extension: out-of-bounds reads or writes from malformed input. 3. FFI exposure when ffi.enable=1 is used in web SAPIs. 4. Unsafe deserialisation of arrays from caches, queues or files. 1. Resource exhaustion Always set a native memory budget in web-facing processes (tessero.memory budget, TESSERO MEMORY BUDGET). Without one, a single request can allocate until the OOM killer ends the worker. Outside the CLI the FFI package now starts with a default budget of max(256 MiB, memory limit) when none is set (memory limit = -1 keeps it unlimited). Opt out with TESSERO MEMORY BUDGET=0 (or -1) in the process environment, or Tessero::setMemoryBudget(0) for the current request. Validate sizes before building arrays. NumericArray(maxElements: \u2026) rejects oversized input before any allocation. Its check is linear in the input size and allocates nothing. Without maxElements it uses config('tessero.max elements') (TESSERO MAX ELEMENTS, default 1,000,000), and it refuses input nested deeper than 32 levels. Bound solver work for user-supplied models: maxiter, nodeLimit, maxIter, and cap the number of states, constraints and variables at the API boundary. A dense LP tableau grows as m\u00b7(n+m). Npy::load reads the whole file into PHP memory (so memory limit applies), then checks the header's declared shape against the data length before building the array. Check file sizes before loading untrusted files. File readers treat their input as hostile (src\/Io): compressed data is inflated only up to $maxBytes (default 256 MiB per .npz archive or MAT\/IDL file, checked from the zip direc"},{"type":"Operations","title":"Upgrading","url":"http:\/\/tessero.org\/docs\/operations\/upgrading","section":"Operations manual","text":"Upgrading Tessero follows Semantic Versioning. Before 1.0, minor versions (0.x \u2192 0.y) may contain breaking changes. Each one is listed here with the action it needs. Patch versions never break. The full history is in CHANGELOG.md at the repository root. General procedure 1. Read this page and the changelog for every version you skip. 2. Upgrade staging first, with the same backend (extension or FFI) as production. 3. Run tessero doctor in every SAPI. 4. Compare outputs of your key calculations before and after on stored inputs. See RB-4 for which differences are expected. 5. Upgrade the extension and the Composer packages together . Their versions must match (Engine::version() and Tessero::VERSION). 6. FFI under FPM: restart FPM (preloaded code is fixed at start). 0.1 \u2192 0.2 New ext-tessero, a full native backend (Tessero\\Ext\\NDArray, Engine, Operand). It replaces the 0.1 operator-only extension tessero ops. Linear and mixed-integer programming (Optimize\\LinearProgramming), Markov decision processes (Mdp\\MarkovDecisionProcess). tessero\/laravel: provider, facade, casts, validation rule, response macro, Octane-safe settings. OpenMP threads (Tessero::setThreads, tessero.threads). NDArray::toJson(), serialize() support, C slice parser (sliceNative). Breaking changes and actions Change Action --- --- The tessero ops extension is gone. Operators now come from ext-tessero. Remove extension=tessero ops, install ext-tessero. Code using operators needs no change. NDArray constructor-promoted properties are no longer readonly (needed for unserialize). None, unless you relied on the Error thrown when writing them. NDArray now extends Tessero\\Internal\\OperandBase. None, unless you use get parent class() on arrays. New error codes \u22126 (shape), \u22127 (not contiguous), \u22128 (did not converge) map to ShapeError, TesseroException, ConvergenceError. Catch TesseroException if you matched messages of the old generic error. LP\/MILP reject NaN\/\u00b1INF in c, A, b with InvalidArgumentException (0.2.0"},{"type":"Operations","title":"Maintaining the library","url":"http:\/\/tessero.org\/docs\/operations\/maintaining","section":"Operations manual","text":"Maintaining the library: build, update, release This is the maintainer runbook for changing the library itself - building the kernel, regenerating fixtures, running the gate, deploying to the reference host, and publishing issues. It is distinct from the rest of the operations manual, which is for users running Tessero in their own applications (see Deployment and Upgrading), and from the day-to-day numerical-parity rules in prompts\/numpy-scipy-parity-program.md, CONTRIBUTING and RELEASING. The two machines Development is split across two hosts on purpose: Role Host Has Notes --- --- --- --- Dev checkout your workstation the repo, GitHub push credentials edits happen here; commits originate here Build \/ reference host (SSH alias) C\/C++ toolchain, the pinned .venv-parity, LAPACK all kernel builds, fixture generation, and gate runs happen here The workstation has no C toolchain, so the loop is: edit locally \u2192 sync to the reference host \u2192 build and verify there \u2192 commit and push from the workstation \u2192 deploy (pull) on the host. Commits only ever originate on the workstation because the reference host's git deploy key is read-only (it can pull, never push - see git access). One-command update On the reference host, a single script does the whole sync-build-test cycle: update.sh force-syncs (git reset --hard origin\/main), so it discards local changes - it is for a mirror checkout, not a dirty working tree. It wraps tools\/pull-build.sh, which can also be run directly. Deploy: pull-build.sh The extension is built in a scratch copy ($EXT BUILD, default ~\/ext-build), never in-place, so it can't pollute the tracked ext\/ tree. The extension's parallel build has an intermittent dependency-file race; pull-build.sh falls back to a serial make automatically, so a flake self-recovers. A clean deploy of a pushed batch, from any state: Avoid git clean -fd on the reference host - it would remove .venv-parity and vendor\/, which are costly to rebuild and not needed to deploy. The gate t"},{"type":"Operations","title":"Soak testing","url":"http:\/\/tessero.org\/docs\/operations\/soak-testing","section":"Operations manual","text":"Soak testing A soak test runs Tessero for hours in one long-lived process, the way a queue worker or an Octane worker does. It fails if anything accumulates. Unit tests cannot find a leak of a few bytes per request; a day of requests can. The harness tools\/soak.php runs a mixed workload in a loop. One iteration covers: ufuncs with out, including in place; views, multi-axis reductions with keepdims, boolean masks, JSON; sort, argsort, FFT, matrix products; .npy files created with openMemmap, then loaded in every mode (r, c, plain load), plus raw memory maps with flush; LP and MDP solves; error paths: a shape error and a missing file. Every iteration frees everything it allocates. Option Default Meaning --- --- --- --backend ext if loaded, else ffi binding under test --duration 60 seconds of wall-clock time after a 20-iteration warm-up --threads 2 OpenMP threads for the run --interval 10 seconds between samples --log none one JSON sample per interval: iterations, native bytes, mapped bytes, PHP heap, RSS, open descriptors Pass criteria Measure Rule --- --- Native bytes in use (memory in use) back at the post-warm-up baseline after every iteration (exact) Mapped bytes (memory mapped) back at baseline after every iteration (exact) PHP heap (memory get usage()) slope over the second half of the run < 16 KiB\/min RSS slope over the second half < 64 KiB\/min Open file descriptors growth \u2264 2 The first half of the run absorbs allocator arenas, OPcache and JIT warm-up. Trends are computed in constant memory, so the harness does not grow the heap it measures. The exit code is 0 on pass and 1 on fail, and a JSON summary is printed. When to run it Nightly CI (.github\/workflows\/nightly.yml) runs 5.5 hours per backend: the extension with JIT off, and the FFI package with the tracing JIT. Before every release , run 24-72 hours on hardware like production's, with the thread count production uses. Attach the summaries and logs to the release notes. After upgrading PHP , run at least a"},{"type":"Operations","title":"Live-testing checklist","url":"http:\/\/tessero.org\/docs\/operations\/live-testing","section":"Operations manual","text":"Live-testing checklist (beta) This checklist is for validating Tessero outside the Linux review host. Use it on your own machines, on CI runners, and in a real application. Each section maps to a P0 item in the open issues. Record the results in the issue: platform, PHP version (php -v), the output of bin\/tessero info --json, and the pass\/fail counts. 0. Repository and CI (TSR-001) 1. Push the repository to GitHub and enable Actions. 2. The first push runs ci.yml. Expect some jobs to fail on first contact: runner images, package names and Windows paths have only been reasoned about, not run. 3. Start nightly.yml by hand (Actions \u2192 nightly \u2192 Run workflow) once ci.yml is green. 4. Import the issue list: 1. The same steps on every platform Run these from the repository root. Items 1-3 need a C compiler; items 4-6 need PHP with ffi and Composer. # Step Command Pass when ---: --- --- --- 1 Build the kernel make -C csrc csrc\/build\/libtessero.{so,dylib,dll} exists 2 Kernel tests make -C csrc test 270 checks, 0 failures 3 Kernel under sanitizers (Linux, macOS) make -C csrc sanitize same, no ASan\/UBSan report 4 Point PHP at the build export TESSERO LIB=$PWD\/csrc\/build\/libtessero.so (.dylib on macOS, .dll on Windows) php bin\/tessero doctor reports no errors 5 FFI suite composer install && php -d ffi.enable=1 vendor\/bin\/phpunit --testsuite unit,parity 0 failures; skips are LAPACK-only if no LAPACK is installed 6 Documentation examples php -d ffi.enable=1 tests\/docs\/examples.php 59 OK Native extension (where PHP development headers exist) The last command runs the cross-backend parity tests (BackendParityTest): both bindings must give identical bytes. 2. Platform notes macOS (TSR-003). Apple clang has no OpenMP. Build serially with OPENMP= make -C csrc, or install libomp with Homebrew and pass its include and lib paths. LAPACK comes from Accelerate or from brew install openblas. Check with bin\/tessero doctor. On arm64 this is the first run of the NEON code paths. Watch MathTest"},{"type":"Docs","title":"NumPy- and SciPy-compatible coverage","url":"http:\/\/tessero.org\/docs\/coverage","section":null,"text":"Reference versions: NumPy 2.4.4, SciPy 1.17.1. A symbol counts as implemented on a backend only when its NumPy\/SciPy fixture test (or, for functions older than the function registry, its PHPUnit suite) passed there in the recorded run. Aliases are not counted. Scope Symbols Excluded (M3) In scope FFI (M2) Extension (M2) Verified FFI \/ ext (M4) Parity (M5) --- ---: ---: ---: ---: ---: ---: ---: NumPy core 860 177 (20.6 %) 683 683 (100.0 %) 683 (100.0 %) 100.0 % \/ 100.0 % 100.0 % &nbsp;&nbsp;numpy 442 102 (23.1 %) 340 340 (100.0 %) 340 (100.0 %) 100.0 % \/ 100.0 % 100.0 % &nbsp;&nbsp;numpy.ndarray 70 14 (20.0 %) 56 56 (100.0 %) 56 (100.0 %) 100.0 % \/ 100.0 % 100.0 % &nbsp;&nbsp;numpy.linalg 32 1 (3.1 %) 31 31 (100.0 %) 31 (100.0 %) 100.0 % \/ 100.0 % 100.0 % &nbsp;&nbsp;numpy.fft 18 0 (0.0 %) 18 18 (100.0 %) 18 (100.0 %) 100.0 % \/ 100.0 % 100.0 % &nbsp;&nbsp;numpy.polynomial 7 1 (14.3 %) 6 6 (100.0 %) 6 (100.0 %) 100.0 % \/ 100.0 % 100.0 % &nbsp;&nbsp;numpy.polynomial.polynomial 28 0 (0.0 %) 28 28 (100.0 %) 28 (100.0 %) 100.0 % \/ 100.0 % 100.0 % &nbsp;&nbsp;numpy.polynomial.chebyshev 34 1 (2.9 %) 33 33 (100.0 %) 33 (100.0 %) 100.0 % \/ 100.0 % 100.0 % &nbsp;&nbsp;numpy.polynomial.legendre 31 0 (0.0 %) 31 31 (100.0 %) 31 (100.0 %) 100.0 % \/ 100.0 % 100.0 % &nbsp;&nbsp;numpy.polynomial.laguerre 31 0 (0.0 %) 31 31 (100.0 %) 31 (100.0 %) 100.0 % \/ 100.0 % 100.0 % &nbsp;&nbsp;numpy.polynomial.hermite 31 0 (0.0 %) 31 31 (100.0 %) 31 (100.0 %) 100.0 % \/ 100.0 % 100.0 % &nbsp;&nbsp;numpy.polynomial.hermite e 31 0 (0.0 %) 31 31 (100.0 %) 31 (100.0 %) 100.0 % \/ 100.0 % 100.0 % &nbsp;&nbsp;numpy.random 60 56 (93.3 %) 4 4 (100.0 %) 4 (100.0 %) 100.0 % \/ 100.0 % 100.0 % &nbsp;&nbsp;numpy.random.Generator 45 2 (4.4 %) 43 43 (100.0 %) 43 (100.0 %) 100.0 % \/ 100.0 % 100.0 % SciPy 1562 65 (4.2 %) 1497 1497 (100.0 %) 1497 (100.0 %) 100.0 % \/ 100.0 % 100.0 % &nbsp;&nbsp;scipy.special 341 5 (1.5 %) 336 336 (100.0 %) 336 (100.0 %) 100.0 % \/ 100.0 % 100.0 % &nbsp;&nbsp;scipy.stats 303 7 (2.3 % NumPy \/ SciPy to Tessero Every NumPy or SciPy function Tessero implements through the kernel registry, and the Tessero call for it. Both backends expose the same classes; the native extension mirrors them under Tessero\\Ext\\.... Array creation and manipulation (the NDArray methods) and the FFT are not registry functions and are covered by the arrays and FFT guides. See the API reference for exact signatures. NumPy (numpy. ) NumPy \/ SciPy Tessero --- --- numpy.allclose Tessero\\Np::allclose() numpy.append Tessero\\Np::append() numpy.argpartition Tessero\\Np::argpartition() numpy.argwhere Tessero\\Np::argwhere() numpy.around Tessero\\Np::around() numpy.array equal Tessero\\Np::arrayEqual() numpy.array equiv Tessero\\Np::arrayEquiv() numpy.array split Tessero\\Np::arraySplit() numpy.asarray chkfinite Tessero\\Np::asarrayChkfinite() numpy.ascontiguousarray Tessero\\Np::ascontiguousarray() numpy.asfortranarray Tessero\\Np::asfortranarray() numpy.atleast 1d Tessero\\Np::atleast1d() numpy.atleast 2d Tessero\\Np::atleast2d() numpy.atleast 3d Tessero\\Np::atleast3d() numpy.average Tessero\\Np::average() numpy.bartlett Tessero\\Np::bartlett() numpy.bincount Tessero\\Np::bincount() numpy.bitwise and Tessero\\Np::bitwiseAnd() numpy.bitwise count Tessero\\Np::bitwiseCount() numpy.bitwise or Tessero\\Np::bitwiseOr() numpy.bitwise xor Tessero\\Np::bitwiseXor() numpy.blackman Tessero\\Np::blackman() numpy.broadcast arrays Tessero\\Np::broadcastArrays() numpy.broadcast shapes Tessero\\Np::broadcastShapes() numpy.broadcast to Tessero\\Np::broadcastTo() numpy.can cast Tessero\\Np::canCast() numpy.choose Tessero\\Np::choose() numpy.column stack Tessero\\Np::columnStack() numpy.compress Tessero\\Np::compress() numpy.concat Tessero\\Np::concat() numpy.concatenate Tessero\\Np::concatenate() numpy.convolve Tessero\\Np::convolve() numpy.copyto Tessero\\Np::copyto() numpy.corrcoef Tessero\\Np::corrcoef() numpy.correlate Tessero\\Np::correlate() numpy.count nonzero Tessero\\Np::countNonzero() numpy.cov Tessero\\Np::cov() numpy.cr Reference versions: NumPy 2.4.4, SciPy 1.17.1. A symbol counts as implemented on a backend only when its NumPy\/SciPy fixture test (or, for functions older than the function registry, its PHPUnit suite) passed there in the recorded run. Aliases are not counted. Scope Symbols Excluded (M3) In scope FFI (M2) Extension (M2) Verified FFI \/ ext (M4) Parity (M5) --- ---: ---: ---: ---: ---: ---: ---: NumPy core 860 177 (20.6 %) 683 683 (100.0 %) 683 (100.0 %) 100.0 % \/ 100.0 % 100.0 % &nbsp;&nbsp;numpy 442 102 (23.1 %) 340 340 (100.0 %) 340 (100.0 %) 100.0 % \/ 100.0 % 100.0 % &nbsp;&nbsp;numpy.ndarray 70 14 (20.0 %) 56 56 (100.0 %) 56 (100.0 %) 100.0 % \/ 100.0 % 100.0 % &nbsp;&nbsp;numpy.linalg 32 1 (3.1 %) 31 31 (100.0 %) 31 (100.0 %) 100.0 % \/ 100.0 % 100.0 % &nbsp;&nbsp;numpy.fft 18 0 (0.0 %) 18 18 (100.0 %) 18 (100.0 %) 100.0 % \/ 100.0 % 100.0 % &nbsp;&nbsp;numpy.polynomial 7 1 (14.3 %) 6 6 (100.0 %) 6 (100.0 %) 100.0 % \/ 100.0 % 100.0 % &nbsp;&nbsp;numpy.polynomial.polynomial 28 0 (0.0 %) 28 28 (100.0 %) 28 (100.0 %) 100.0 % \/ 100.0 % 100.0 % &nbsp;&nbsp;numpy.polynomial.chebyshev 34 1 (2.9 %) 33 33 (100.0 %) 33 (100.0 %) 100.0 % \/ 100.0 % 100.0 % &nbsp;&nbsp;numpy.polynomial.legendre 31 0 (0.0 %) 31 31 (100.0 %) 31 (100.0 %) 100.0 % \/ 100.0 % 100.0 % &nbsp;&nbsp;numpy.polynomial.laguerre 31 0 (0.0 %) 31 31 (100.0 %) 31 (100.0 %) 100.0 % \/ 100.0 % 100.0 % &nbsp;&nbsp;numpy.polynomial.hermite 31 0 (0.0 %) 31 31 (100.0 %) 31 (100.0 %) 100.0 % \/ 100.0 % 100.0 % &nbsp;&nbsp;numpy.polynomial.hermite e 31 0 (0.0 %) 31 31 (100.0 %) 31 (100.0 %) 100.0 % \/ 100.0 % 100.0 % &nbsp;&nbsp;numpy.random 60 56 (93.3 %) 4 4 (100.0 %) 4 (100.0 %) 100.0 % \/ 100.0 % 100.0 % &nbsp;&nbsp;numpy.random.Generator 45 2 (4.4 %) 43 43 (100.0 %) 43 (100.0 %) 100.0 % \/ 100.0 % 100.0 % SciPy 1562 65 (4.2 %) 1497 1497 (100.0 %) 1497 (100.0 %) 100.0 % \/ 100.0 % 100.0 % &nbsp;&nbsp;scipy.special 341 5 (1.5 %) 336 336 (100.0 %) 336 (100.0 %) 100.0 % \/ 100.0 % 100.0 % &nbsp;&nbsp;scipy.stats 303 7 (2.3 %"},{"type":"API","title":"ClusterNode","url":"http:\/\/tessero.org\/docs\/api\/tessero-cluster-hierarchy-clusternode","section":"Tessero\\Cluster\\Hierarchy","text":"Tessero\\Cluster\\Hierarchy\\ClusterNode __construct __construct(int $id, ?Tessero\\Cluster\\Hierarchy\\ClusterNode $left = null, ?Tessero\\Cluster\\Hierarchy\\ClusterNode $right = null, float $dist = 0.0, ?int $count = null) getId getId(): int getCount getCount(): int getLeft getLeft(): ?Tessero\\Cluster\\Hierarchy\\ClusterNode getRight getRight(): ?Tessero\\Cluster\\Hierarchy\\ClusterNode isLeaf isLeaf(): bool preOrder preOrder(?callable $func = null): array"},{"type":"API","title":"DisjointSet","url":"http:\/\/tessero.org\/docs\/api\/tessero-cluster-hierarchy-disjointset","section":"Tessero\\Cluster\\Hierarchy","text":"Tessero\\Cluster\\Hierarchy\\DisjointSet __construct __construct(?iterable $elements = null) add add(string|int|float|bool $x): void find find(string|int|float|bool $x): string|int|float|bool merge merge(string|int|float|bool $x, string|int|float|bool $y): bool connected connected(string|int|float|bool $x, string|int|float|bool $y): bool subset subset(string|int|float|bool $x): array subsetSize subsetSize(string|int|float|bool $x): int subsets subsets(): array count count(): int getIterator getIterator(): Traversable"},{"type":"API","title":"Trees","url":"http:\/\/tessero.org\/docs\/api\/tessero-cluster-hierarchy-trees","section":"Tessero\\Cluster\\Hierarchy","text":"Tessero\\Cluster\\Hierarchy\\Trees toTree toTree(mixed $Z, bool $rd = false): Tessero\\Cluster\\Hierarchy\\ClusterNode|array setLinkColorPalette setLinkColorPalette(?array $palette): void dendrogram dendrogram(mixed $Z): array"},{"type":"API","title":"NDArray","url":"http:\/\/tessero.org\/docs\/api\/tessero-ndarray","section":"Tessero","text":"Tessero\\NDArray __construct __construct(Tessero\\Native\\Buffer $buffer, Tessero\\DType $dtype, array $shape, ?array $strides = null, int $offset = 0) empty empty(array|int $shape, Tessero\\DType|string $dtype = \u2026): self zeros zeros(array|int $shape, Tessero\\DType|string $dtype = \u2026): self ones ones(array|int $shape, Tessero\\DType|string $dtype = \u2026): self full full(array|int $shape, int|float|bool $value, Tessero\\DType|string|null $dtype = null): self arange arange(int|float $start, int|float|null $stop = null, int|float $step = 1, Tessero\\DType|string|null $dtype = null): self linspace linspace(float $start, float $stop, int $num = 50, bool $endpoint = true): self eye eye(int $n, ?int $m = null, int $k = 0, Tessero\\DType|string $dtype = \u2026): self array array(mixed $data, Tessero\\DType|string|null $dtype = null): self fromFlat fromFlat(array $flat, array $shape, Tessero\\DType|string $dtype = \u2026): self complex complex(mixed $real, mixed $imag = null): self fromBytes fromBytes(string $bytes, Tessero\\DType|string $dtype, ?array $shape = null): self asArray asArray(mixed $value, Tessero\\DType|string|null $dtype = null): self memmap memmap(string $filename, string $mode = 'r+', ?array $shape = null, Tessero\\DType|string $dtype = \u2026, int $offset = 0): self openMemmap openMemmap(string $path, string $mode = 'r+', ?array $shape = null, Tessero\\DType|string $dtype = \u2026, bool $fortranOrder = false): self load load(string $path, ?string $mmapMode = null): self save save(string $path): void flush flush(bool $sync = false): self isMemmap isMemmap(): bool isReadonly isReadonly(): bool filename filename(): ?string shape shape(): array strides strides(): array dtype dtype(): Tessero\\DType ndim ndim(): int size size(): int nbytes nbytes(): int buffer buffer(): Tessero\\Native\\Buffer ptr ptr(): FFI\\CData isContiguous isContiguous(): bool isFortranContiguous isFortranContiguous(): bool count count(): int toArray toArray(): mixed toList toList(): array toBytes toBytes(): string item item(int ..."},{"type":"API","title":"Math","url":"http:\/\/tessero.org\/docs\/api\/tessero-math","section":"Tessero","text":"Tessero\\Math ufuncs ufuncs(): array apply apply(string $name, mixed $x, mixed $y = null, ?Tessero\\NDArray $out = null): Tessero\\NDArray negative negative(mixed $x, ?Tessero\\NDArray $out = null): Tessero\\NDArray absolute absolute(mixed $x, ?Tessero\\NDArray $out = null): Tessero\\NDArray abs abs(mixed $x, ?Tessero\\NDArray $out = null): Tessero\\NDArray square square(mixed $x, ?Tessero\\NDArray $out = null): Tessero\\NDArray sign sign(mixed $x, ?Tessero\\NDArray $out = null): Tessero\\NDArray sqrt sqrt(mixed $x, ?Tessero\\NDArray $out = null): Tessero\\NDArray exp exp(mixed $x, ?Tessero\\NDArray $out = null): Tessero\\NDArray expm1 expm1(mixed $x, ?Tessero\\NDArray $out = null): Tessero\\NDArray log log(mixed $x, ?Tessero\\NDArray $out = null): Tessero\\NDArray log10 log10(mixed $x, ?Tessero\\NDArray $out = null): Tessero\\NDArray log2 log2(mixed $x, ?Tessero\\NDArray $out = null): Tessero\\NDArray log1p log1p(mixed $x, ?Tessero\\NDArray $out = null): Tessero\\NDArray sin sin(mixed $x, ?Tessero\\NDArray $out = null): Tessero\\NDArray cos cos(mixed $x, ?Tessero\\NDArray $out = null): Tessero\\NDArray tan tan(mixed $x, ?Tessero\\NDArray $out = null): Tessero\\NDArray arcsin arcsin(mixed $x, ?Tessero\\NDArray $out = null): Tessero\\NDArray arccos arccos(mixed $x, ?Tessero\\NDArray $out = null): Tessero\\NDArray arctan arctan(mixed $x, ?Tessero\\NDArray $out = null): Tessero\\NDArray sinh sinh(mixed $x, ?Tessero\\NDArray $out = null): Tessero\\NDArray cosh cosh(mixed $x, ?Tessero\\NDArray $out = null): Tessero\\NDArray tanh tanh(mixed $x, ?Tessero\\NDArray $out = null): Tessero\\NDArray floor floor(mixed $x, ?Tessero\\NDArray $out = null): Tessero\\NDArray ceil ceil(mixed $x, ?Tessero\\NDArray $out = null): Tessero\\NDArray rint rint(mixed $x, ?Tessero\\NDArray $out = null): Tessero\\NDArray reciprocal reciprocal(mixed $x, ?Tessero\\NDArray $out = null): Tessero\\NDArray isnan isnan(mixed $x, ?Tessero\\NDArray $out = null): Tessero\\NDArray isinf isinf(mixed $x, ?Tessero\\NDArray $out = null): Tessero\\NDArray isfinite is"},{"type":"API","title":"Tessero","url":"http:\/\/tessero.org\/docs\/api\/tessero-tessero","section":"Tessero","text":"Tessero\\Tessero setMemoryBudget setMemoryBudget(int $bytes): void memoryBudget memoryBudget(): int memoryInUse memoryInUse(): int peakMemory peakMemory(): int setBlasThreads setBlasThreads(int $threads): void setThreads setThreads(int $threads): void threads threads(): int rng rng(array|int|null $seed = null): Tessero\\Random\\Generator info info(): array"},{"type":"API","title":"Linalg","url":"http:\/\/tessero.org\/docs\/api\/tessero-linalg-linalg","section":"Tessero\\Linalg","text":"Tessero\\Linalg\\Linalg solve solve(mixed $a, mixed $b): Tessero\\NDArray inv inv(mixed $a): Tessero\\NDArray det det(mixed $a): Tessero\\NDArray|float slogdet slogdet(mixed $a): array cholesky cholesky(mixed $a, bool $upper = false): Tessero\\NDArray qr qr(mixed $a, string $mode = 'reduced'): Tessero\\NDArray|array eigh eigh(mixed $a, bool $vectors = true): array eigvalsh eigvalsh(mixed $a): Tessero\\NDArray eig eig(mixed $a): array eigvals eigvals(mixed $a): Tessero\\NDArray svd svd(mixed $a, bool $fullMatrices = true, bool $computeUv = true): Tessero\\NDArray|array pinv pinv(mixed $a, float $rcond = 1.0E-15): Tessero\\NDArray lstsq lstsq(mixed $a, mixed $b, ?float $rcond = null): array solveTriangular solveTriangular(mixed $a, mixed $b, bool $lower = false, bool $transpose = false, bool $unitDiagonal = false): Tessero\\NDArray lu lu(mixed $a): array norm norm(mixed $x, string|int|float|null $ord = null, ?int $axis = null): Tessero\\NDArray|float cond cond(mixed $a): float matrixRank matrixRank(mixed $a, ?float $tol = null): int trace trace(mixed $a): float tril tril(Tessero\\NDArray $a, int $k = 0): Tessero\\NDArray triu triu(Tessero\\NDArray $a, int $k = 0): Tessero\\NDArray"},{"type":"API","title":"Fft","url":"http:\/\/tessero.org\/docs\/api\/tessero-fft-fft","section":"Tessero\\Fft","text":"Tessero\\Fft\\Fft fft fft(mixed $a, ?int $n = null, int $axis = -1, string $norm = 'backward'): Tessero\\NDArray ifft ifft(mixed $a, ?int $n = null, int $axis = -1, string $norm = 'backward'): Tessero\\NDArray rfft rfft(mixed $a, ?int $n = null, int $axis = -1, string $norm = 'backward'): Tessero\\NDArray irfft irfft(mixed $a, ?int $n = null, int $axis = -1, string $norm = 'backward'): Tessero\\NDArray fft2 fft2(mixed $a, string $norm = 'backward'): Tessero\\NDArray ifft2 ifft2(mixed $a, string $norm = 'backward'): Tessero\\NDArray fftn fftn(mixed $a, ?array $s = null, ?array $axes = null, string $norm = 'backward'): Tessero\\NDArray ifftn ifftn(mixed $a, ?array $s = null, ?array $axes = null, string $norm = 'backward'): Tessero\\NDArray rfftn rfftn(mixed $a, ?array $s = null, ?array $axes = null, string $norm = 'backward'): Tessero\\NDArray rfft2 rfft2(mixed $a, ?array $s = null, ?array $axes = null, string $norm = 'backward'): Tessero\\NDArray irfftn irfftn(mixed $a, ?array $s = null, ?array $axes = null, string $norm = 'backward'): Tessero\\NDArray irfft2 irfft2(mixed $a, ?array $s = null, ?array $axes = null, string $norm = 'backward'): Tessero\\NDArray hfft hfft(mixed $a, ?int $n = null, int $axis = -1, string $norm = 'backward'): Tessero\\NDArray ihfft ihfft(mixed $a, ?int $n = null, int $axis = -1, string $norm = 'backward'): Tessero\\NDArray hfftn hfftn(mixed $a, ?array $s = null, ?array $axes = null, string $norm = 'backward'): Tessero\\NDArray hfft2 hfft2(mixed $a, ?array $s = null, ?array $axes = null, string $norm = 'backward'): Tessero\\NDArray ihfftn ihfftn(mixed $a, ?array $s = null, ?array $axes = null, string $norm = 'backward'): Tessero\\NDArray ihfft2 ihfft2(mixed $a, ?array $s = null, ?array $axes = null, string $norm = 'backward'): Tessero\\NDArray nextFastLen nextFastLen(int $target, bool $real = false): int prevFastLen prevFastLen(int $target, bool $real = false): int fftfreq fftfreq(int $n, float $d = 1.0): Tessero\\NDArray rfftfreq rfftfreq(int $n, float $d = 1."},{"type":"API","title":"ScipyLinalg","url":"http:\/\/tessero.org\/docs\/api\/tessero-scipylinalg","section":"Tessero","text":"Tessero\\ScipyLinalg apply apply(string $name, mixed ...$args): mixed bandwidth bandwidth(mixed $a): mixed blockDiag blockDiag(mixed ...$arrs): mixed cdf2rdf cdf2rdf(mixed $w, mixed $v): mixed choFactor choFactor(mixed $a, mixed $lower = false): mixed choSolve choSolve(mixed $c, mixed $lower, mixed $b): mixed choSolveBanded choSolveBanded(mixed $cb, mixed $lower, mixed $b): mixed cholesky cholesky(mixed $a, mixed $lower = false): mixed choleskyBanded choleskyBanded(mixed $ab, mixed $lower = false): mixed circulant circulant(mixed $c): mixed companion companion(mixed $a): mixed convolutionMatrix convolutionMatrix(mixed $a, mixed $n, mixed $mode = 'full'): mixed coshm coshm(mixed $a): mixed cosm cosm(mixed $a): mixed cossin cossin(mixed $X, mixed $p, mixed $q): mixed det det(mixed $a): mixed dft dft(mixed $n, mixed $scale = null): mixed diagsvd diagsvd(mixed $s, mixed $M, mixed $N): mixed eig eig(mixed $a): mixed eigBanded eigBanded(mixed $ab, mixed $lower = false, mixed $eigvalsOnly = false): mixed eigh eigh(mixed $a): mixed eighTridiagonal eighTridiagonal(mixed $d, mixed $e): mixed eigvals eigvals(mixed $a): mixed eigvalsBanded eigvalsBanded(mixed $aBand, mixed $lower = false): mixed eigvalsh eigvalsh(mixed $a): mixed eigvalshTridiagonal eigvalshTridiagonal(mixed $d, mixed $e): mixed expm expm(mixed $a): mixed expmCond expmCond(mixed $A): mixed expmFrechet expmFrechet(mixed $A, mixed $E): mixed fiedler fiedler(mixed $a): mixed fiedlerCompanion fiedlerCompanion(mixed $a): mixed fractionalMatrixPower fractionalMatrixPower(mixed $a, mixed $t): mixed funm funm(mixed $a, mixed $func = 'exp'): mixed hadamard hadamard(mixed $n): mixed hankel hankel(mixed $c, mixed $r = null): mixed helmert helmert(mixed $n, mixed $full = false): mixed hessenberg hessenberg(mixed $a, mixed $calcQ = false): mixed hilbert hilbert(mixed $n): mixed inv inv(mixed $a): mixed invhilbert invhilbert(mixed $n): mixed invpascal invpascal(mixed $n, mixed $kind = 'symmetric'): mixed ishermitian ishermiti"},{"type":"API","title":"Constants","url":"http:\/\/tessero.org\/docs\/api\/tessero-constants","section":"Tessero","text":"Tessero\\Constants convertTemperature convertTemperature(float $val, string $oldScale, string $newScale): float lambda2nu lambda2nu(float $lambda): float nu2lambda nu2lambda(float $nu): float value value(string $key): float unit unit(string $key): string precision precision(string $key): float find find(?string $sub = null): array physicalConstants physicalConstants(): array"},{"type":"API","title":"Distance","url":"http:\/\/tessero.org\/docs\/api\/tessero-distance","section":"Tessero","text":"Tessero\\Distance apply apply(string $name, mixed ...$args): mixed braycurtis braycurtis(mixed $u, mixed $v, mixed $w = null): mixed canberra canberra(mixed $u, mixed $v, mixed $w = null): mixed cdist cdist(mixed $XA, mixed $XB, mixed $metric = null, mixed $p = null): mixed chebyshev chebyshev(mixed $u, mixed $v, mixed $w = null): mixed cityblock cityblock(mixed $u, mixed $v, mixed $w = null): mixed correlation correlation(mixed $u, mixed $v, mixed $w = null, mixed $centered = true): mixed cosine cosine(mixed $u, mixed $v, mixed $w = null): mixed dice dice(mixed $u, mixed $v, mixed $w = null): mixed distanceMatrix distanceMatrix(mixed $x, mixed $y, mixed $p = 2, mixed $threshold = 1000000): mixed euclidean euclidean(mixed $u, mixed $v, mixed $w = null): mixed geometricSlerp geometricSlerp(mixed $start, mixed $end, mixed $t): mixed hamming hamming(mixed $u, mixed $v, mixed $w = null): mixed isValidDm isValidDm(mixed $D, mixed $tol = 0.0, mixed $throw = false, mixed $name = 'D', mixed $warning = false): mixed isValidY isValidY(mixed $y, mixed $warning = false, mixed $throw = false, mixed $name = null): mixed jaccard jaccard(mixed $u, mixed $v, mixed $w = null): mixed jensenshannon jensenshannon(mixed $p, mixed $q, mixed $base = null): mixed mahalanobis mahalanobis(mixed $u, mixed $v, mixed $VI): mixed minkowski minkowski(mixed $u, mixed $v, mixed $p = 2, mixed $w = null): mixed minkowskiDistance minkowskiDistance(mixed $x, mixed $y, mixed $p = 2): mixed minkowskiDistanceP minkowskiDistanceP(mixed $x, mixed $y, mixed $p = 2): mixed numObsDm numObsDm(mixed $d): mixed numObsY numObsY(mixed $Y): mixed pdist pdist(mixed $X, mixed $metric = null, mixed $p = null): mixed procrustes procrustes(mixed $data1, mixed $data2): mixed rogerstanimoto rogerstanimoto(mixed $u, mixed $v, mixed $w = null): mixed russellrao russellrao(mixed $u, mixed $v, mixed $w = null): mixed seuclidean seuclidean(mixed $u, mixed $v, mixed $V): mixed sokalsneath sokalsneath(mixed $u, mixed $v, mixed $w ="},{"type":"API","title":"Signal","url":"http:\/\/tessero.org\/docs\/api\/tessero-signal","section":"Tessero","text":"Tessero\\Signal apply apply(string $name, mixed ...$args): mixed abcdNormalize abcdNormalize(mixed $A, mixed $B, mixed $C, mixed $D): mixed argrelextrema argrelextrema(mixed $data, mixed $comparator, mixed $axis = 0, mixed $order = 1, mixed $mode = 'clip'): mixed argrelmax argrelmax(mixed $data, mixed $axis = 0, mixed $order = 1, mixed $mode = 'clip'): mixed argrelmin argrelmin(mixed $data, mixed $axis = 0, mixed $order = 1, mixed $mode = 'clip'): mixed bandStopObj bandStopObj(mixed $wp, mixed $ind, mixed $passb, mixed $stopb, mixed $gpass, mixed $gstop, mixed $type): mixed bessel bessel(mixed $N, mixed $Wn, mixed $btype = 'low', mixed $analog = false, mixed $output = 'ba', mixed $norm = 'phase', mixed $fs = null): mixed besselap besselap(mixed $N, mixed $norm = 'phase'): mixed bilinear bilinear(mixed $b, mixed $a, mixed $fs = 1.0): mixed bilinearZpk bilinearZpk(mixed $z, mixed $p, mixed $k, mixed $fs): mixed bode bode(mixed $num, mixed $den, mixed $w): mixed buttap buttap(mixed $N): mixed butter butter(mixed $N, mixed $Wn, mixed $btype = 'low', mixed $analog = false, mixed $output = 'ba', mixed $fs = null): mixed buttord buttord(mixed $wp, mixed $ws, mixed $gpass, mixed $gstop, mixed $analog = false, mixed $fs = null): mixed cheb1ap cheb1ap(mixed $N, mixed $rp): mixed cheb1ord cheb1ord(mixed $wp, mixed $ws, mixed $gpass, mixed $gstop, mixed $analog = false, mixed $fs = null): mixed cheb2ap cheb2ap(mixed $N, mixed $rs): mixed cheb2ord cheb2ord(mixed $wp, mixed $ws, mixed $gpass, mixed $gstop, mixed $analog = false, mixed $fs = null): mixed cheby1 cheby1(mixed $N, mixed $rp, mixed $Wn, mixed $btype = 'low', mixed $analog = false, mixed $output = 'ba', mixed $fs = null): mixed cheby2 cheby2(mixed $N, mixed $rs, mixed $Wn, mixed $btype = 'low', mixed $analog = false, mixed $output = 'ba', mixed $fs = null): mixed checkCOLA checkCOLA(mixed $window, mixed $nperseg, mixed $noverlap, mixed $tol = 1.0E-10): mixed checkNOLA checkNOLA(mixed $window, mixed $nperseg, mixed $nove"},{"type":"API","title":"SignalWindows","url":"http:\/\/tessero.org\/docs\/api\/tessero-signalwindows","section":"Tessero","text":"Tessero\\SignalWindows apply apply(string $name, mixed ...$args): mixed barthann barthann(mixed $M, mixed $sym = true): mixed bartlett bartlett(mixed $M, mixed $sym = true): mixed blackman blackman(mixed $M, mixed $sym = true): mixed blackmanharris blackmanharris(mixed $M, mixed $sym = true): mixed bohman bohman(mixed $M, mixed $sym = true): mixed boxcar boxcar(mixed $M, mixed $sym = true): mixed chebwin chebwin(mixed $M, mixed $at, mixed $sym = true): mixed cosine cosine(mixed $M, mixed $sym = true): mixed dpss dpss(mixed $M, mixed $NW, mixed $Kmax = null, mixed $sym = true, mixed $norm = null): mixed exponential exponential(mixed $M, mixed $center = null, mixed $tau = 1.0, mixed $sym = true): mixed flattop flattop(mixed $M, mixed $sym = true): mixed gaussian gaussian(mixed $M, mixed $std, mixed $sym = true): mixed generalCosine generalCosine(mixed $M, mixed $a, mixed $sym = true): mixed generalGaussian generalGaussian(mixed $M, mixed $p, mixed $sig, mixed $sym = true): mixed generalHamming generalHamming(mixed $M, mixed $alpha, mixed $sym = true): mixed hamming hamming(mixed $M, mixed $sym = true): mixed hann hann(mixed $M, mixed $sym = true): mixed kaiser kaiser(mixed $M, mixed $beta, mixed $sym = true): mixed kaiserBesselDerived kaiserBesselDerived(mixed $M, mixed $beta, mixed $sym = true): mixed lanczos lanczos(mixed $M, mixed $sym = true): mixed nuttall nuttall(mixed $M, mixed $sym = true): mixed parzen parzen(mixed $M, mixed $sym = true): mixed taylor taylor(mixed $M, mixed $nbar = 4, mixed $sll = 30, mixed $norm = true, mixed $sym = true): mixed triang triang(mixed $M, mixed $sym = true): mixed tukey tukey(mixed $M, mixed $alpha = 0.5, mixed $sym = true): mixed"},{"type":"API","title":"Ndimage","url":"http:\/\/tessero.org\/docs\/api\/tessero-ndimage","section":"Tessero","text":"Tessero\\Ndimage apply apply(string $name, mixed ...$args): mixed affineTransform affineTransform(mixed $input, mixed $matrix, mixed $offset = 0.0, mixed $outputShape = null, mixed $order = 3, mixed $mode = 'constant', mixed $cval = 0.0, mixed $prefilter = true): mixed binaryClosing binaryClosing(mixed $input, mixed $structure = null): mixed binaryDilation binaryDilation(mixed $input, mixed $structure = null): mixed binaryErosion binaryErosion(mixed $input, mixed $structure = null): mixed binaryFillHoles binaryFillHoles(mixed $input, mixed $structure = null): mixed binaryHitOrMiss binaryHitOrMiss(mixed $input, mixed $structure1 = null, mixed $structure2 = null): mixed binaryOpening binaryOpening(mixed $input, mixed $structure = null): mixed binaryPropagation binaryPropagation(mixed $input, mixed $structure = null, mixed $mask = null): mixed blackTophat blackTophat(mixed $input, mixed $size = null, mixed $mode = 'reflect', mixed $cval = 0.0, mixed $origin = 0): mixed centerOfMass centerOfMass(mixed $input, mixed $labels = null, mixed $index = null): mixed convolve convolve(mixed $input, mixed $weights, mixed $mode = 'reflect', mixed $cval = 0.0): mixed convolve1d convolve1d(mixed $input, mixed $weights, mixed $axis = -1, mixed $mode = 'reflect', mixed $cval = 0.0, mixed $origin = 0): mixed correlate correlate(mixed $input, mixed $weights, mixed $mode = 'reflect', mixed $cval = 0.0, mixed $origin = 0): mixed correlate1d correlate1d(mixed $input, mixed $weights, mixed $axis = -1, mixed $mode = 'reflect', mixed $cval = 0.0, mixed $origin = 0): mixed distanceTransformBf distanceTransformBf(mixed $input, mixed $metric = 'euclidean', mixed $sampling = null): mixed distanceTransformCdt distanceTransformCdt(mixed $input, mixed $metric = 'chessboard'): mixed distanceTransformEdt distanceTransformEdt(mixed $input, mixed $sampling = null): mixed extrema extrema(mixed $input, mixed $labels = null, mixed $index = null): mixed findObjects findObjects(mixed $input, mixed $maxLabel ="},{"type":"API","title":"Csgraph","url":"http:\/\/tessero.org\/docs\/api\/tessero-csgraph","section":"Tessero","text":"Tessero\\Csgraph apply apply(string $name, mixed ...$args): mixed bellmanFord bellmanFord(mixed $csgraph, mixed $directed = true, mixed $indices = null, mixed $returnPredecessors = false, mixed $unweighted = false): mixed breadthFirstOrder breadthFirstOrder(mixed $csgraph, mixed $iStart, mixed $directed = true, mixed $returnPredecessors = true): mixed breadthFirstTree breadthFirstTree(mixed $csgraph, mixed $iStart, mixed $directed = true): mixed connectedComponents connectedComponents(mixed $csgraph, mixed $directed = true, mixed $connection = 'weak'): mixed constructDistMatrix constructDistMatrix(mixed $graph, mixed $predecessors, mixed $directed = true): mixed csgraphFromDense csgraphFromDense(mixed $graph, mixed $nullValue = 0, mixed $nanNull = true, mixed $infinityNull = true): mixed csgraphToDense csgraphToDense(mixed $data, mixed $indices, mixed $indptr, mixed $nNodes, mixed $nullValue = 0): mixed depthFirstOrder depthFirstOrder(mixed $csgraph, mixed $iStart, mixed $directed = true, mixed $returnPredecessors = true): mixed depthFirstTree depthFirstTree(mixed $csgraph, mixed $iStart, mixed $directed = true): mixed dijkstra dijkstra(mixed $csgraph, mixed $directed = true, mixed $indices = null, mixed $returnPredecessors = false, mixed $unweighted = false): mixed floydWarshall floydWarshall(mixed $csgraph, mixed $directed = true, mixed $returnPredecessors = false, mixed $unweighted = false, mixed $overwrite = false): mixed johnson johnson(mixed $csgraph, mixed $directed = true, mixed $indices = null, mixed $returnPredecessors = false, mixed $unweighted = false): mixed laplacian laplacian(mixed $csgraph, mixed $normed = false): mixed maximumBipartiteMatching maximumBipartiteMatching(mixed $graph, mixed $permType = 'row'): mixed maximumFlow maximumFlow(mixed $csgraph, mixed $source, mixed $sink, mixed $method = 'dinic'): mixed minWeightFullBipartiteMatching minWeightFullBipartiteMatching(mixed $biadjacencyMatrix, mixed $maximize = false): mixed minimumSpanningTree m"},{"type":"API","title":"Interpolate","url":"http:\/\/tessero.org\/docs\/api\/tessero-interpolate","section":"Tessero","text":"Tessero\\Interpolate apply apply(string $name, mixed ...$args): mixed Akima1DInterpolator Akima1DInterpolator(mixed $x, mixed $y, mixed $xnew): mixed BPoly BPoly(mixed $c, mixed $x, mixed $xnew): mixed BSpline BSpline(mixed $t, mixed $c, mixed $k, mixed $x): mixed BarycentricInterpolator BarycentricInterpolator(mixed $xi, mixed $yi, mixed $x): mixed CubicHermiteSpline CubicHermiteSpline(mixed $x, mixed $y, mixed $dydx, mixed $xnew): mixed CubicSpline CubicSpline(mixed $x, mixed $y, mixed $xnew): mixed FloaterHormannInterpolator FloaterHormannInterpolator(mixed $xi, mixed $yi, mixed $x, mixed $d = 3): mixed KroghInterpolator KroghInterpolator(mixed $xi, mixed $yi, mixed $x): mixed NdBSpline NdBSpline(mixed $tx, mixed $ty, mixed $c, mixed $kx, mixed $ky, mixed $xi): mixed NdPPoly NdPPoly(mixed $c, mixed $xb, mixed $yb, mixed $xi): mixed PPoly PPoly(mixed $c, mixed $x, mixed $xnew): mixed PchipInterpolator PchipInterpolator(mixed $x, mixed $y, mixed $xnew): mixed RBFInterpolator RBFInterpolator(mixed $y, mixed $d, mixed $xi, mixed $kernel = 'thin_plate_spline'): mixed RegularGridInterpolator RegularGridInterpolator(mixed $points, mixed $values, mixed $xi): mixed barycentricInterpolate barycentricInterpolate(mixed $xi, mixed $yi, mixed $x): mixed bisplrep bisplrep(mixed $x, mixed $y, mixed $z, mixed $w, mixed $kx, mixed $ky, mixed $s, mixed $eps): mixed insert insert(mixed $x, mixed $t, mixed $c, mixed $k, mixed $m = 1): mixed interpn interpn(mixed $points, mixed $values, mixed $xi): mixed kroghInterpolate kroghInterpolate(mixed $xi, mixed $yi, mixed $x): mixed lagrange lagrange(mixed $x, mixed $w): mixed makeInterpSpline makeInterpSpline(mixed $x, mixed $y, mixed $k, mixed $xnew): mixed makeLsqSpline makeLsqSpline(mixed $x, mixed $y, mixed $t, mixed $k, mixed $xnew): mixed pade pade(mixed $an, mixed $m, mixed $n = null): mixed pchipInterpolate pchipInterpolate(mixed $xi, mixed $yi, mixed $x): mixed spalde spalde(mixed $t, mixed $c, mixed $k, mixed $x): mixed spgrid spgr"},{"type":"API","title":"Cluster","url":"http:\/\/tessero.org\/docs\/api\/tessero-cluster","section":"Tessero","text":"Tessero\\Cluster apply apply(string $name, mixed ...$args): mixed kmeans kmeans(mixed $obs, mixed $kOrGuess, mixed $iter = 20, mixed $thresh = 1.0E-5): mixed kmeans2 kmeans2(mixed $data, mixed $k, mixed $iter = 10, mixed $thresh = 1.0E-5, mixed $minit = 'matrix', mixed $missing = 'warn'): mixed vq vq(mixed $obs, mixed $codeBook): mixed whiten whiten(mixed $obs): mixed"},{"type":"API","title":"Polynomial","url":"http:\/\/tessero.org\/docs\/api\/tessero-polynomial","section":"Tessero","text":"Tessero\\Polynomial apply apply(string $name, mixed ...$args): mixed Chebyshev Chebyshev(mixed $coef, mixed $x): mixed Hermite Hermite(mixed $coef, mixed $x): mixed HermiteE HermiteE(mixed $coef, mixed $x): mixed Laguerre Laguerre(mixed $coef, mixed $x): mixed Legendre Legendre(mixed $coef, mixed $x): mixed Polynomial Polynomial(mixed $coef, mixed $x): mixed cheb2poly cheb2poly(mixed $c): mixed chebadd chebadd(mixed $c1, mixed $c2): mixed chebcompanion chebcompanion(mixed $c): mixed chebder chebder(mixed $c, mixed $m = 1, mixed $scl = 1): mixed chebdiv chebdiv(mixed $c1, mixed $c2): mixed chebdomain chebdomain(): mixed chebfit chebfit(mixed $x, mixed $y, mixed $deg): mixed chebfromroots chebfromroots(mixed $roots): mixed chebgauss chebgauss(mixed $deg): mixed chebgrid2d chebgrid2d(mixed $x, mixed $y, mixed $c): mixed chebgrid3d chebgrid3d(mixed $x, mixed $y, mixed $z, mixed $c): mixed chebint chebint(mixed $c, mixed $m = 1, mixed $k = 0, mixed $lbnd = 0, mixed $scl = 1): mixed chebline chebline(mixed $off, mixed $scl): mixed chebmul chebmul(mixed $c1, mixed $c2): mixed chebmulx chebmulx(mixed $c): mixed chebone chebone(): mixed chebpow chebpow(mixed $c, mixed $pow, mixed $maxpower = 16): mixed chebpts1 chebpts1(mixed $npts): mixed chebpts2 chebpts2(mixed $npts): mixed chebroots chebroots(mixed $c): mixed chebsub chebsub(mixed $c1, mixed $c2): mixed chebtrim chebtrim(mixed $c, mixed $tol = 0): mixed chebval chebval(mixed $x, mixed $c): mixed chebval2d chebval2d(mixed $x, mixed $y, mixed $c): mixed chebval3d chebval3d(mixed $x, mixed $y, mixed $z, mixed $c): mixed chebvander chebvander(mixed $x, mixed $deg): mixed chebvander2d chebvander2d(mixed $x, mixed $y, mixed $deg): mixed chebvander3d chebvander3d(mixed $x, mixed $y, mixed $z, mixed $deg): mixed chebweight chebweight(mixed $x): mixed chebx chebx(): mixed chebzero chebzero(): mixed herm2poly herm2poly(mixed $c): mixed hermadd hermadd(mixed $c1, mixed $c2): mixed hermcompanion hermcompanion(mixed $c): mixed hermder"},{"type":"API","title":"Hierarchy","url":"http:\/\/tessero.org\/docs\/api\/tessero-hierarchy","section":"Tessero","text":"Tessero\\Hierarchy apply apply(string $name, mixed ...$args): mixed average average(mixed $y): mixed centroid centroid(mixed $y): mixed complete complete(mixed $y): mixed cophenet cophenet(mixed $Z): mixed correspond correspond(mixed $Z, mixed $Y): mixed cutTree cutTree(mixed $Z, mixed $nClusters = null, mixed $height = null): mixed fcluster fcluster(mixed $Z, mixed $t, mixed $criterion = 'inconsistent', mixed $depth = 2, mixed $R = null, mixed $monocrit = null): mixed fclusterdata fclusterdata(mixed $X, mixed $t, mixed $criterion = 'inconsistent', mixed $metric = 'euclidean', mixed $depth = 2, mixed $method = 'single'): mixed fromMlabLinkage fromMlabLinkage(mixed $Z): mixed inconsistent inconsistent(mixed $Z, mixed $d = 2): mixed isIsomorphic isIsomorphic(mixed $T1, mixed $T2): mixed isMonotonic isMonotonic(mixed $Z): mixed isValidIm isValidIm(mixed $R): mixed isValidLinkage isValidLinkage(mixed $Z): mixed leaders leaders(mixed $Z, mixed $T): mixed leavesList leavesList(mixed $Z): mixed linkage linkage(mixed $y, mixed $method = 'single'): mixed maxRstat maxRstat(mixed $Z, mixed $R, mixed $i): mixed maxdists maxdists(mixed $Z): mixed maxinconsts maxinconsts(mixed $Z, mixed $R): mixed median median(mixed $y): mixed numObsLinkage numObsLinkage(mixed $Z): mixed optimalLeafOrdering optimalLeafOrdering(mixed $Z, mixed $y, mixed $metric = 'euclidean'): mixed single single(mixed $y): mixed toMlabLinkage toMlabLinkage(mixed $Z): mixed ward ward(mixed $y): mixed weighted weighted(mixed $y): mixed"},{"type":"API","title":"SparseLinalg","url":"http:\/\/tessero.org\/docs\/api\/tessero-sparselinalg","section":"Tessero","text":"Tessero\\SparseLinalg apply apply(string $name, mixed ...$args): mixed bicg bicg(mixed $A, mixed $b, mixed $x0 = null, mixed $rtol = 1.0E-5, mixed $atol = 0.0, mixed $maxiter = null): mixed bicgstab bicgstab(mixed $A, mixed $b, mixed $x0 = null, mixed $rtol = 1.0E-5, mixed $atol = 0.0, mixed $maxiter = null): mixed cg cg(mixed $A, mixed $b, mixed $x0 = null, mixed $rtol = 1.0E-5, mixed $atol = 0.0, mixed $maxiter = null): mixed cgs cgs(mixed $A, mixed $b, mixed $x0 = null, mixed $rtol = 1.0E-5, mixed $atol = 0.0, mixed $maxiter = null): mixed eigs eigs(mixed $A, mixed $k = 6, mixed $which = 'LM|LR|SR|LI', mixed $sigma = null, mixed $v0 = null, mixed $ncv = null, mixed $maxiter = null, mixed $tol = 0.0, mixed $returnEigenvectors = true): mixed eigsh eigsh(mixed $A, mixed $k = 6, mixed $which = 'LM|SM|LA|SA|BE', mixed $sigma = null, mixed $v0 = null, mixed $ncv = null, mixed $maxiter = null, mixed $tol = 0.0, mixed $returnEigenvectors = true): mixed expm expm(mixed $A): mixed expmMultiply expmMultiply(mixed $A, mixed $B, mixed $start = null, mixed $stop = null, mixed $num = null, mixed $endpoint = null): mixed funmMultiplyKrylov funmMultiplyKrylov(mixed $f, mixed $A, mixed $b): mixed gcrotmk gcrotmk(mixed $A, mixed $b, mixed $x0 = null, mixed $rtol = 1.0E-5, mixed $atol = 0.0, mixed $maxiter = null, mixed $m = 20, mixed $k = null): mixed gmres gmres(mixed $A, mixed $b, mixed $x0 = null, mixed $rtol = 1.0E-5, mixed $atol = 0.0, mixed $maxiter = null, mixed $restart = null): mixed inv inv(mixed $A): mixed isSptriangular isSptriangular(mixed $A): mixed lgmres lgmres(mixed $A, mixed $b, mixed $x0 = null, mixed $rtol = 1.0E-5, mixed $atol = 0.0, mixed $maxiter = null, mixed $innerM = 30, mixed $outerK = 3): mixed lobpcg lobpcg(mixed $A, mixed $X, mixed $B = null, mixed $M = null, mixed $Y = null, mixed $tol = null, mixed $maxiter = null, mixed $largest = true): mixed lsmr lsmr(mixed $A, mixed $b, mixed $damp = 0.0, mixed $atol = 1.0E-6, mixed $btol = 1.0E-6, mixed $conlim ="},{"type":"API","title":"ScipyFft","url":"http:\/\/tessero.org\/docs\/api\/tessero-scipyfft","section":"Tessero","text":"Tessero\\ScipyFft apply apply(string $name, mixed ...$args): mixed dct dct(mixed $x, mixed $type = 2, mixed $n = null, mixed $axis = -1, mixed $norm = null): mixed dctn dctn(mixed $x, mixed $type = 2, mixed $s = null, mixed $axes = null, mixed $norm = null): mixed dst dst(mixed $x, mixed $type = 2, mixed $n = null, mixed $axis = -1, mixed $norm = null): mixed dstn dstn(mixed $x, mixed $type = 2, mixed $s = null, mixed $axes = null, mixed $norm = null): mixed fht fht(mixed $a, mixed $dln, mixed $mu, mixed $offset = 0, mixed $bias = 0): mixed fhtoffset fhtoffset(mixed $dln, mixed $mu, mixed $initial = 0, mixed $bias = 0): mixed idct idct(mixed $x, mixed $type = 2, mixed $n = null, mixed $axis = -1, mixed $norm = null): mixed idctn idctn(mixed $x, mixed $type = 2, mixed $s = null, mixed $axes = null, mixed $norm = null): mixed idst idst(mixed $x, mixed $type = 2, mixed $n = null, mixed $axis = -1, mixed $norm = null): mixed idstn idstn(mixed $x, mixed $type = 2, mixed $s = null, mixed $axes = null, mixed $norm = null): mixed ifht ifht(mixed $A, mixed $dln, mixed $mu, mixed $offset = 0, mixed $bias = 0): mixed"},{"type":"API","title":"Generator","url":"http:\/\/tessero.org\/docs\/api\/tessero-random-generator","section":"Tessero\\Random","text":"Tessero\\Random\\Generator defaultRng defaultRng(array|int|null $seed = null): self integers integers(int $low, ?int $high = null, array|int|null $size = null): Tessero\\NDArray|int bytes bytes(int $length): string multivariateNormal multivariateNormal(mixed $mean, mixed $cov, array|int|null $size = null, string $checkValid = 'warn', float $tol = 1.0E-8, string $method = 'svd'): Tessero\\NDArray choice choice(Tessero\\NDArray|array|int $a, array|int|null $size = null, bool $replace = true, ?array $p = null): mixed permutation permutation(Tessero\\NDArray|array|int $x): Tessero\\NDArray shuffle shuffle(Tessero\\NDArray $x): void dirichlet dirichlet(array $alpha, array|int|null $size = null): Tessero\\NDArray multinomial multinomial(int $n, array $pvals, array|int|null $size = null): Tessero\\NDArray permuted permuted(Tessero\\NDArray $x, ?int $axis = null, ?Tessero\\NDArray $out = null): Tessero\\NDArray multivariateHypergeometric multivariateHypergeometric(array $colors, int $nsample, array|int|null $size = null, string $method = 'marginals'): Tessero\\NDArray stateHandle stateHandle(): FFI\\CData getState getState(): array setState setState(array $words): void beta beta(mixed $a, mixed $b, array|int|null $size = null): Tessero\\NDArray|float binomial binomial(mixed $n, mixed $p, array|int|null $size = null): Tessero\\NDArray|int chisquare chisquare(mixed $df, array|int|null $size = null): Tessero\\NDArray|float exponential exponential(mixed $scale = 1.0, array|int|null $size = null): Tessero\\NDArray|float f f(mixed $dfnum, mixed $dfden, array|int|null $size = null): Tessero\\NDArray|float gamma gamma(mixed $shape, mixed $scale = 1.0, array|int|null $size = null): Tessero\\NDArray|float geometric geometric(mixed $p, array|int|null $size = null): Tessero\\NDArray|int gumbel gumbel(mixed $loc = 0.0, mixed $scale = 1.0, array|int|null $size = null): Tessero\\NDArray|float hypergeometric hypergeometric(mixed $ngood, mixed $nbad, mixed $nsample, array|int|null $size = null): Tessero\\NDArray|i"},{"type":"API","title":"CsrMatrix","url":"http:\/\/tessero.org\/docs\/api\/tessero-sparse-csrmatrix","section":"Tessero\\Sparse","text":"Tessero\\Sparse\\CsrMatrix fromDense fromDense(mixed $dense): self fromTriplets fromTriplets(Tessero\\NDArray|array $row, Tessero\\NDArray|array $col, Tessero\\NDArray|array $values, array $shape): self fromArrays fromArrays(mixed $indptr, mixed $indices, mixed $data, array $shape): self identity identity(int $n): self shape shape(): array nnz nnz(): int indptr indptr(): Tessero\\NDArray indices indices(): Tessero\\NDArray data data(): Tessero\\NDArray toDense toDense(): Tessero\\NDArray dot dot(mixed $x): Tessero\\NDArray transpose transpose(): self scale scale(float $alpha): self diagonal diagonal(): Tessero\\NDArray cg cg(mixed $b, mixed $x0 = null, float $rtol = 1.0E-5, float $atol = 0.0, ?int $maxiter = null, bool $throw = false): array bicgstab bicgstab(mixed $b, mixed $x0 = null, float $rtol = 1.0E-5, float $atol = 0.0, ?int $maxiter = null, bool $throw = false): array"},{"type":"API","title":"Minimize","url":"http:\/\/tessero.org\/docs\/api\/tessero-optimize-minimize","section":"Tessero\\Optimize","text":"Tessero\\Optimize\\Minimize rosen rosen(array $x): float rosenDer rosenDer(array $x): array rosenHess rosenHess(array $x): array rosenHessProd rosenHessProd(array $x, array $p): array brent brent(callable $fun, ?array $brack = null): float golden golden(callable $fun, ?array $brack = null, float $tol = 1.4901161193847656E-8, int $maxiter = 5000): float fminBfgs fminBfgs(callable $fun, array $x0, ?callable $fprime = null): array fminCg fminCg(callable $fun, array $x0, ?callable $fprime = null): array fminPowell fminPowell(callable $func, array $x0, array $options = []): array fminNcg fminNcg(callable $f, array $x0, callable $fprime, ?callable $fhessp = null): array fminTnc fminTnc(callable $func, array $x0, ?callable $fprime = null, ?array $bounds = null): array fminLbfgsb fminLbfgsb(callable $func, array $x0, ?callable $fprime = null, ?array $bounds = null): array fminSlsqp fminSlsqp(callable $func, array $x0, array $eqcons = [], array $ieqcons = [], ?array $bounds = null, ?callable $fprime = null): array fminCobyla fminCobyla(callable $func, array $x0, array $cons, float $rhobeg = 1.0, float $rhoend = 0.0001, int $maxfun = 1000): array checkGrad checkGrad(callable $func, callable $grad, array $x0, float $epsilon = 1.4901161193847656E-8): float brute brute(callable $func, array $ranges, int $Ns = 20): array|float minimize minimize(callable $fun, array $x0, ?callable $jac = null, string $method = 'BFGS', ?array $bounds = null, array $options = []): Tessero\\Optimize\\OptimizeResult fmin fmin(callable $func, array $x0, array $options = []): array fminbound fminbound(callable $func, float $x1, float $x2, float $xtol = 1.0E-5, int $maxfun = 500): float minimizeScalar minimizeScalar(callable $func, ?array $bracket = null, ?array $bounds = null, string $method = '', array $options = []): Tessero\\Optimize\\OptimizeResult bracket bracket(callable $func, float $xa = 0.0, float $xb = 1.0, float $growLimit = 110.0, int $maxiter = 1000): array approxGrad approxGrad(callable $f, arra"},{"type":"API","title":"Root","url":"http:\/\/tessero.org\/docs\/api\/tessero-optimize-root","section":"Tessero\\Optimize","text":"Tessero\\Optimize\\Root brentq brentq(callable $f, float $a, float $b, float $xtol = 2.0E-12, ?float $rtol = null, int $maxiter = 100, bool $fullOutput = false): array|float bisect bisect(callable $f, float $a, float $b, float $xtol = 2.0E-12, ?float $rtol = null, int $maxiter = 100): float brenth brenth(callable $f, float $a, float $b, float $xtol = 2.0E-12, ?float $rtol = null, int $maxiter = 100): float ridder ridder(callable $f, float $a, float $b, float $xtol = 2.0E-12, ?float $rtol = null, int $maxiter = 100): float toms748 toms748(callable $f, float $a, float $b, float $xtol = 2.0E-12, ?float $rtol = null, int $maxiter = 100): float rootScalar rootScalar(callable $f, ?string $method = null, ?array $bracket = null, ?float $x0 = null, ?float $x1 = null): array newton newton(callable $f, float $x0, ?callable $fprime = null, float $tol = 1.48E-8, int $maxiter = 50, float $rtol = 0.0): float fsolve fsolve(callable $func, array $x0): array fixedPoint fixedPoint(callable $func, float $x0, float $xtol = 1.0E-8, int $maxiter = 500): float root root(callable $fun, array $x0, ?callable $jac = null, float $tol = 1.49012E-8, int $maxiter = 100): Tessero\\Optimize\\OptimizeResult fdJacobian fdJacobian(callable $F, array $x, array $fx): array"},{"type":"API","title":"LeastSquares","url":"http:\/\/tessero.org\/docs\/api\/tessero-optimize-leastsquares","section":"Tessero\\Optimize","text":"Tessero\\Optimize\\LeastSquares solve solve(callable $residuals, array $p0, ?callable $jac = null, float $ftol = 1.0E-8, float $xtol = 1.0E-8, float $gtol = 1.0E-8, ?int $maxfev = null): array curveFit curveFit(callable $f, array $xdata, array $ydata, array $p0, ?array $sigma = null, bool $absoluteSigma = false): array leastSquares leastSquares(callable $fun, array $x0): Tessero\\Optimize\\OptimizeResult lsqLinear lsqLinear(array $A, array $b, ?array $bounds = null): Tessero\\Optimize\\OptimizeResult isotonicRegression isotonicRegression(array $y, ?array $weights = null, bool $increasing = true): array nnls nnls(array $A, array $b, ?int $maxiter = null): array"},{"type":"API","title":"LinearProgramming","url":"http:\/\/tessero.org\/docs\/api\/tessero-optimize-linearprogramming","section":"Tessero\\Optimize","text":"Tessero\\Optimize\\LinearProgramming linprog linprog(mixed $c, mixed $A_ub = null, mixed $b_ub = null, mixed $A_eq = null, mixed $b_eq = null, ?array $bounds = null, int $maxiter = 100000, float $tol = 1.0E-9): Tessero\\Optimize\\LinprogResult milp milp(mixed $c, array|bool $integrality = true, mixed $A_ub = null, mixed $b_ub = null, mixed $A_eq = null, mixed $b_eq = null, ?array $bounds = null, int $nodeLimit = 100000, float $mipRelGap = 0.0, float $tol = 1.0E-9): Tessero\\Optimize\\MilpResult"},{"type":"API","title":"Assignment","url":"http:\/\/tessero.org\/docs\/api\/tessero-optimize-assignment","section":"Tessero\\Optimize","text":"Tessero\\Optimize\\Assignment linearSumAssignment linearSumAssignment(array $cost, bool $maximize = false): array"},{"type":"API","title":"Bounds","url":"http:\/\/tessero.org\/docs\/api\/tessero-optimize-bounds","section":"Tessero\\Optimize","text":"Tessero\\Optimize\\Bounds __construct __construct(array|int|float $lb = -INF, array|int|float $ub = INF, array|bool $keep_feasible = false) resolved resolved(int $n): array"},{"type":"API","title":"LinearConstraint","url":"http:\/\/tessero.org\/docs\/api\/tessero-optimize-linearconstraint","section":"Tessero\\Optimize","text":"Tessero\\Optimize\\LinearConstraint __construct __construct(array $A, array|int|float $lb = -INF, array|int|float $ub = INF, array|bool $keep_feasible = false)"},{"type":"API","title":"NonlinearConstraint","url":"http:\/\/tessero.org\/docs\/api\/tessero-optimize-nonlinearconstraint","section":"Tessero\\Optimize","text":"Tessero\\Optimize\\NonlinearConstraint __construct __construct(mixed $fun, array|int|float $lb, array|int|float $ub, mixed $jac = '2-point', mixed $hess = null, array|bool $keep_feasible = false, float $finite_diff_rel_step = NAN)"},{"type":"API","title":"RootResults","url":"http:\/\/tessero.org\/docs\/api\/tessero-optimize-rootresults","section":"Tessero\\Optimize","text":"Tessero\\Optimize\\RootResults __construct __construct(float $root, int $iterations, int $function_calls, bool $converged, string $flag, string $method = '') jsonSerialize jsonSerialize(): array"},{"type":"API","title":"QuadraticAssignment","url":"http:\/\/tessero.org\/docs\/api\/tessero-optimize-quadraticassignment","section":"Tessero\\Optimize","text":"Tessero\\Optimize\\QuadraticAssignment faq faq(array $A, array $B, bool $maximize = false, int $maxiter = 30, float $tol = 0.03): array"},{"type":"API","title":"MarkovDecisionProcess","url":"http:\/\/tessero.org\/docs\/api\/tessero-mdp-markovdecisionprocess","section":"Tessero\\Mdp","text":"Tessero\\Mdp\\MarkovDecisionProcess fromDense fromDense(mixed $P, mixed $R, bool $validate = true): self fromSparse fromSparse(array $perAction, mixed $R, bool $validate = true): self fromTransitions fromTransitions(int $states, int $actions, iterable $transitions, iterable $rewards, bool $validate = true): self states states(): int actions actions(): int rewards rewards(): Tessero\\NDArray valueIteration valueIteration(float $gamma, float $epsilon = 1.0E-6, int $maxIter = 10000, mixed $initial = null): Tessero\\Mdp\\MdpResult policyIteration policyIteration(float $gamma, int $evalSweeps = 0, float $epsilon = 1.0E-6, int $maxIter = 1000, mixed $initialPolicy = null): Tessero\\Mdp\\MdpResult evaluate evaluate(mixed $policy, float $gamma): Tessero\\NDArray qValues qValues(mixed $V, float $gamma): Tessero\\NDArray finiteHorizon finiteHorizon(int $horizon, float $gamma = 1.0, mixed $terminal = null): array simulate simulate(mixed $policy, int $start, int $steps, ?Tessero\\Random\\Generator $rng = null): array"},{"type":"API","title":"Npy","url":"http:\/\/tessero.org\/docs\/api\/tessero-io-npy","section":"Tessero\\Io","text":"Tessero\\Io\\Npy save save(string $path, Tessero\\NDArray $array): void load load(string $path): Tessero\\NDArray encode encode(Tessero\\NDArray|Tessero\\Ext\\NDArray $array): string decode decode(string $bytes, string $what = '.npy data'): Tessero\\NDArray saveZ saveZ(string $path, array $arrays, bool $compress = true): void loadZ loadZ(string $path): array"},{"type":"API","title":"MatrixMarket","url":"http:\/\/tessero.org\/docs\/api\/tessero-io-matrixmarket","section":"Tessero\\Io","text":"Tessero\\Io\\MatrixMarket read read(string $text): array info info(string $text): array write write(array $data, string $format = 'array', string $field = 'real', string $symmetry = 'general'): string"},{"type":"API","title":"Wav","url":"http:\/\/tessero.org\/docs\/api\/tessero-io-wav","section":"Tessero\\Io","text":"Tessero\\Io\\Wav read read(string $bytes): array write write(int $rate, array $data, string $dtype, int $channels = 1): string"},{"type":"API","title":"FortranFile","url":"http:\/\/tessero.org\/docs\/api\/tessero-io-fortranfile","section":"Tessero\\Io","text":"Tessero\\Io\\FortranFile readRecords readRecords(string $bytes, string $dtype, string $headerDtype = 'uint32'): array readRecord readRecord(string $bytes, string $dtype, string $headerDtype = 'uint32'): array writeRecord writeRecord(array $values, string $dtype, string $headerDtype = 'uint32'): string writeRecords writeRecords(array $records, string $dtype, string $headerDtype = 'uint32'): string"},{"type":"API","title":"MatIO","url":"http:\/\/tessero.org\/docs\/api\/tessero-io-matio","section":"Tessero\\Io","text":"Tessero\\Io\\MatIO read read(string $bytes): array info info(string $bytes): array write write(array $vars): string"},{"type":"API","title":"HarwellBoeing","url":"http:\/\/tessero.org\/docs\/api\/tessero-io-harwellboeing","section":"Tessero\\Io","text":"Tessero\\Io\\HarwellBoeing read read(string $text): array write write(int $nrows, int $ncols, array $indptr, array $indices, array $data, string $title = 'Default title', string $key = '0'): string"},{"type":"API","title":"NetCDF","url":"http:\/\/tessero.org\/docs\/api\/tessero-io-netcdf","section":"Tessero\\Io","text":"Tessero\\Io\\NetCDF read read(string $bytes): array write write(array $spec): string"},{"type":"API","title":"IdlSave","url":"http:\/\/tessero.org\/docs\/api\/tessero-io-idlsave","section":"Tessero\\Io","text":"Tessero\\Io\\IdlSave read read(string $bytes): array"},{"type":"API","title":"ClosestStftDualWindow","url":"http:\/\/tessero.org\/docs\/api\/tessero-signal-closeststftdualwindow","section":"Tessero\\Signal","text":"Tessero\\Signal\\ClosestStftDualWindow compute compute(array $win, int $hop, ?array $desiredDual = null, bool $scaled = true): array"},{"type":"API","title":"UnivariateSpline","url":"http:\/\/tessero.org\/docs\/api\/tessero-interpolate-univariatespline","section":"Tessero\\Interpolate","text":"Tessero\\Interpolate\\UnivariateSpline __construct __construct(array $x, array $y, ?array $w = null, int $k = 3, ?float $s = null) evaluate evaluate(array $xq): array getKnots getKnots(): array getCoeffs getCoeffs(): array"},{"type":"API","title":"SparseNpz","url":"http:\/\/tessero.org\/docs\/api\/tessero-io-sparsenpz","section":"Tessero\\Io","text":"Tessero\\Io\\SparseNpz save save(string $path, array $csr, bool $isArray = true, bool $compress = true): void load load(string $path): array toDense toDense(string $path): Tessero\\NDArray"},{"type":"API","title":"Quad","url":"http:\/\/tessero.org\/docs\/api\/tessero-integrate-quad","section":"Tessero\\Integrate","text":"Tessero\\Integrate\\Quad quad quad(callable $f, float $a, float $b, float $epsabs = 1.49E-8, float $epsrel = 1.49E-8, int $limit = 50): array fixedQuad fixedQuad(callable $func, float $a, float $b, int $n = 5): array"},{"type":"API","title":"Tanhsinh","url":"http:\/\/tessero.org\/docs\/api\/tessero-integrate-tanhsinh","section":"Tessero\\Integrate","text":"Tessero\\Integrate\\Tanhsinh tanhsinh tanhsinh(callable $f, float $a, float $b, int $maxlevel = 10, int $minlevel = 2, float $atol = 0.0, ?float $rtol = null): array"},{"type":"API","title":"QuadVec","url":"http:\/\/tessero.org\/docs\/api\/tessero-integrate-quadvec","section":"Tessero\\Integrate","text":"Tessero\\Integrate\\QuadVec quadVec quadVec(callable $f, float $a, float $b, float $epsabs = 1.0E-200, float $epsrel = 1.0E-8, string $norm = '2', ?string $quadrature = null): array"},{"type":"API","title":"KDTree","url":"http:\/\/tessero.org\/docs\/api\/tessero-spatial-kdtree","section":"Tessero\\Spatial","text":"Tessero\\Spatial\\KDTree __construct __construct(array $data) count count(): int query query(array $x, int $k = 1): array"},{"type":"API","title":"Rectangle","url":"http:\/\/tessero.org\/docs\/api\/tessero-spatial-rectangle","section":"Tessero\\Spatial","text":"Tessero\\Spatial\\Rectangle __construct __construct(array $maxes, array $mins) volume volume(): float minDistancePoint minDistancePoint(array $x, float $p = 2.0): float maxDistancePoint maxDistancePoint(array $x, float $p = 2.0): float minDistanceRectangle minDistanceRectangle(self $other, float $p = 2.0): float maxDistanceRectangle maxDistanceRectangle(self $other, float $p = 2.0): float split split(int $d, float $split): array"},{"type":"API","title":"Hausdorff","url":"http:\/\/tessero.org\/docs\/api\/tessero-spatial-hausdorff","section":"Tessero\\Spatial","text":"Tessero\\Spatial\\Hausdorff directed directed(array $u, array $v): array"},{"type":"API","title":"ConvexHull","url":"http:\/\/tessero.org\/docs\/api\/tessero-spatial-convexhull","section":"Tessero\\Spatial","text":"Tessero\\Spatial\\ConvexHull __construct __construct(array $points)"},{"type":"API","title":"Delaunay","url":"http:\/\/tessero.org\/docs\/api\/tessero-spatial-delaunay","section":"Tessero\\Spatial","text":"Tessero\\Spatial\\Delaunay __construct __construct(array $points) barycentric barycentric(int $simplex, array $x): array findSimplex findSimplex(array $queryPoints, float $tol = 1.0E-12): array tsearch tsearch(Tessero\\Spatial\\Delaunay|array $tri, array $xi): array"},{"type":"API","title":"Bisplev","url":"http:\/\/tessero.org\/docs\/api\/tessero-interpolate-bisplev","section":"Tessero\\Interpolate","text":"Tessero\\Interpolate\\Bisplev eval eval(array $x, array $y, array $tck, int $dx = 0, int $dy = 0): array"},{"type":"API","title":"InterpolatedUnivariateSpline","url":"http:\/\/tessero.org\/docs\/api\/tessero-interpolate-interpolatedunivariatespline","section":"Tessero\\Interpolate","text":"Tessero\\Interpolate\\InterpolatedUnivariateSpline __construct __construct(array $x, array $y, int $k = 3) evaluate evaluate(array $xq): array"},{"type":"API","title":"LSQUnivariateSpline","url":"http:\/\/tessero.org\/docs\/api\/tessero-interpolate-lsqunivariatespline","section":"Tessero\\Interpolate","text":"Tessero\\Interpolate\\LSQUnivariateSpline __construct __construct(array $x, array $y, array $t, int $k = 3) query query(array $xnew): array knots knots(): array"},{"type":"API","title":"RectBivariateSpline","url":"http:\/\/tessero.org\/docs\/api\/tessero-interpolate-rectbivariatespline","section":"Tessero\\Interpolate","text":"Tessero\\Interpolate\\RectBivariateSpline __construct __construct(array $x, array $y, array $z, int $kx = 3, int $ky = 3, float $s = 0.0) getCoeffs getCoeffs(): array getKnots getKnots(): array"},{"type":"API","title":"NearestNDInterpolator","url":"http:\/\/tessero.org\/docs\/api\/tessero-interpolate-nearestndinterpolator","section":"Tessero\\Interpolate","text":"Tessero\\Interpolate\\NearestNDInterpolator __construct __construct(array $points, array $values, bool $rescale = false) query query(array $xi): array"},{"type":"API","title":"MakeSplrep","url":"http:\/\/tessero.org\/docs\/api\/tessero-interpolate-makesplrep","section":"Tessero\\Interpolate","text":"Tessero\\Interpolate\\MakeSplrep __construct __construct(array $x, array $y, int $k = 3, float $s = 0.0) evaluate evaluate(array $xq): array"},{"type":"API","title":"MakeSplprep","url":"http:\/\/tessero.org\/docs\/api\/tessero-interpolate-makesplprep","section":"Tessero\\Interpolate","text":"Tessero\\Interpolate\\MakeSplprep __construct __construct(array $x, int $k = 3, float $s = 0.0) parameters parameters(): array evaluate evaluate(array $uq): array"},{"type":"API","title":"GenerateKnots","url":"http:\/\/tessero.org\/docs\/api\/tessero-interpolate-generateknots","section":"Tessero\\Interpolate","text":"Tessero\\Interpolate\\GenerateKnots knots knots(array $x, int $k = 3, float $s = 0.0): array"},{"type":"API","title":"ApproximateTaylorPolynomial","url":"http:\/\/tessero.org\/docs\/api\/tessero-interpolate-approximatetaylorpolynomial","section":"Tessero\\Interpolate","text":"Tessero\\Interpolate\\ApproximateTaylorPolynomial compute compute(callable $f, float $x, int $degree, float $scale, ?int $order = null): array"},{"type":"API","title":"Rbf","url":"http:\/\/tessero.org\/docs\/api\/tessero-interpolate-rbf","section":"Tessero\\Interpolate","text":"Tessero\\Interpolate\\Rbf __construct __construct(array $coords, array $d, string $function = 'multiquadric', ?float $epsilon = null, float $smooth = 0.0) evaluate evaluate(array $coords): array"},{"type":"API","title":"Voronoi","url":"http:\/\/tessero.org\/docs\/api\/tessero-spatial-voronoi","section":"Tessero\\Spatial","text":"Tessero\\Spatial\\Voronoi __construct __construct(array $points)"},{"type":"API","title":"Rotation","url":"http:\/\/tessero.org\/docs\/api\/tessero-spatial-transform-rotation","section":"Tessero\\Spatial\\Transform","text":"Tessero\\Spatial\\Transform\\Rotation single single(): bool count count(): int fromQuat fromQuat(array $quat): self fromMatrix fromMatrix(array $matrix): self fromRotvec fromRotvec(array $rotvec, bool $degrees = false): self fromMrp fromMrp(array $mrp): self fromEuler fromEuler(string $seq, array|float $angles, bool $degrees = false): self identity identity(?int $num = null): self asQuat asQuat(): array asMatrix asMatrix(): array asRotvec asRotvec(bool $degrees = false): array asMrp asMrp(): array asEuler asEuler(string $seq, bool $degrees = false): array inv inv(): self magnitude magnitude(): array|float apply apply(array $vectors, bool $inverse = false): array compose compose(self $other): self"},{"type":"API","title":"Slerp","url":"http:\/\/tessero.org\/docs\/api\/tessero-spatial-transform-slerp","section":"Tessero\\Spatial\\Transform","text":"Tessero\\Spatial\\Transform\\Slerp __construct __construct(array $times, Tessero\\Spatial\\Transform\\Rotation $rotations)"},{"type":"API","title":"RigidTransform","url":"http:\/\/tessero.org\/docs\/api\/tessero-spatial-transform-rigidtransform","section":"Tessero\\Spatial\\Transform","text":"Tessero\\Spatial\\Transform\\RigidTransform single single(): bool count count(): int fromMatrix fromMatrix(array $matrix): self fromRotation fromRotation(Tessero\\Spatial\\Transform\\Rotation $rotation): self fromTranslation fromTranslation(array $translation): self fromComponents fromComponents(array $translation, Tessero\\Spatial\\Transform\\Rotation $rotation): self identity identity(?int $num = null): self asMatrix asMatrix(): array rotation rotation(): Tessero\\Spatial\\Transform\\Rotation translation translation(): array apply apply(array $vectors, bool $inverse = false): array inv inv(): self compose compose(self $other): self"},{"type":"API","title":"RotationSpline","url":"http:\/\/tessero.org\/docs\/api\/tessero-spatial-transform-rotationspline","section":"Tessero\\Spatial\\Transform","text":"Tessero\\Spatial\\Transform\\RotationSpline __construct __construct(array $times, Tessero\\Spatial\\Transform\\Rotation $rotations)"},{"type":"API","title":"CloughTocher2DInterpolator","url":"http:\/\/tessero.org\/docs\/api\/tessero-interpolate-cloughtocher2dinterpolator","section":"Tessero\\Interpolate","text":"Tessero\\Interpolate\\CloughTocher2DInterpolator __construct __construct(array $points, array $values, float $fillValue = NAN, float $tol = 1.0E-6, int $maxiter = 400, bool $rescale = false) query query(array $xi): array"},{"type":"API","title":"AAA","url":"http:\/\/tessero.org\/docs\/api\/tessero-interpolate-aaa","section":"Tessero\\Interpolate","text":"Tessero\\Interpolate\\AAA __construct __construct(array $x, array $y, ?float $rtol = null, int $maxTerms = 100) query query(array $z): array"},{"type":"API","title":"Datetime","url":"http:\/\/tessero.org\/docs\/api\/tessero-datetime-datetime","section":"Tessero\\Datetime","text":"Tessero\\Datetime\\Datetime datetime64 datetime64(array|string $value, string $unit = 'D'): array|int timedelta64 timedelta64(string|int $value, string $unit = 's'): int datetimeData datetimeData(string $dtype): array isnat isnat(array|int $counts): array|bool isBusday isBusday(array|string $dates, string $weekmask = '1111100', array $holidays = []): array|bool busdayCount busdayCount(string $begin, string $end, string $weekmask = '1111100', array $holidays = []): int busdayOffset busdayOffset(string $date, int $offset, string $roll = 'raise', string $weekmask = '1111100', array $holidays = []): int datetimeAsString datetimeAsString(array|int $counts, string $unit = 'D'): array|string"},{"type":"API","title":"ArrayOps","url":"http:\/\/tessero.org\/docs\/api\/tessero-arrayops","section":"Tessero","text":"Tessero\\ArrayOps block block(array $arrays): mixed"},{"type":"API","title":"OrthoPoly","url":"http:\/\/tessero.org\/docs\/api\/tessero-orthopoly","section":"Tessero","text":"Tessero\\OrthoPoly legendre legendre(int $n): Tessero\\OrthoPoly1d chebyt chebyt(int $n): Tessero\\OrthoPoly1d chebyu chebyu(int $n): Tessero\\OrthoPoly1d chebyc chebyc(int $n): Tessero\\OrthoPoly1d chebys chebys(int $n): Tessero\\OrthoPoly1d hermite hermite(int $n): Tessero\\OrthoPoly1d hermitenorm hermitenorm(int $n): Tessero\\OrthoPoly1d laguerre laguerre(int $n): Tessero\\OrthoPoly1d genlaguerre genlaguerre(int $n, float $alpha): Tessero\\OrthoPoly1d gegenbauer gegenbauer(int $n, float $alpha): Tessero\\OrthoPoly1d jacobi jacobi(int $n, float $alpha, float $beta): Tessero\\OrthoPoly1d shLegendre shLegendre(int $n): Tessero\\OrthoPoly1d shChebyt shChebyt(int $n): Tessero\\OrthoPoly1d shChebyu shChebyu(int $n): Tessero\\OrthoPoly1d shJacobi shJacobi(int $n, float $p, float $q): Tessero\\OrthoPoly1d"},{"type":"API","title":"SpecialSeq","url":"http:\/\/tessero.org\/docs\/api\/tessero-specialseq","section":"Tessero","text":"Tessero\\SpecialSeq legendreP legendreP(int $n, float $x, int $diffN = 0): array legendrePAll legendrePAll(int $n, float $x, int $diffN = 0): array lqn lqn(int $n, float $x): array riccatiJn riccatiJn(int $n, float $x): array riccatiYn riccatiYn(int $n, float $x): array assocLegendreP assocLegendreP(int $n, int $m, float $x, int $diffN = 0, bool $norm = false): array assocLegendrePAll assocLegendrePAll(int $n, int $m, float $x, int $diffN = 0, bool $norm = false): array sphLegendreP sphLegendreP(int $n, int $m, float $theta, int $diffN = 0): array sphLegendrePAll sphLegendrePAll(int $n, int $m, float $theta, int $diffN = 0): array sphHarmYAll sphHarmYAll(int $n, int $m, float $theta, float $phi): array lqmn lqmn(int $m, int $n, float $x): array stirling2 stirling2(array|int $n, array|int $k): array|float"},{"type":"API","title":"StatsFns","url":"http:\/\/tessero.org\/docs\/api\/tessero-statsfns","section":"Tessero","text":"Tessero\\StatsFns boxcoxNormmax boxcoxNormmax(array $x, string $method = 'pearsonr'): float yeojohnsonNormmax yeojohnsonNormmax(array $x): float ppccPlot ppccPlot(array $x, float $a, float $b, int $n = 80): array ppccMax ppccMax(array $x): float bayesMvs bayesMvs(array $data, float $alpha = 0.9): array mvsdist mvsdist(array $data): array"},{"type":"API","title":"ValueIndices","url":"http:\/\/tessero.org\/docs\/api\/tessero-valueindices","section":"Tessero","text":"Tessero\\ValueIndices valueIndices valueIndices(mixed $input, ?int $ignoreValue = null): array"},{"type":"API","title":"GeometricTransform","url":"http:\/\/tessero.org\/docs\/api\/tessero-ndimage-geometrictransform","section":"Tessero\\Ndimage","text":"Tessero\\Ndimage\\GeometricTransform apply apply(mixed $input, callable $mapping, ?array $outputShape = null, int $order = 3, string $mode = 'constant', float $cval = 0.0, bool $prefilter = true): mixed"},{"type":"API","title":"NdimageGeneric","url":"http:\/\/tessero.org\/docs\/api\/tessero-ndimagegeneric","section":"Tessero","text":"Tessero\\NdimageGeneric genericFilter genericFilter(array $input, callable $function, array|int|null $size = null, ?array $footprint = null, string $mode = 'reflect', float $cval = 0.0, array|int $origin = 0): array"},{"type":"API","title":"LabeledComprehension","url":"http:\/\/tessero.org\/docs\/api\/tessero-labeledcomprehension","section":"Tessero","text":"Tessero\\LabeledComprehension labeledComprehension labeledComprehension(array $input, ?array $labels, array|int|null $index, callable $func, int|float|null $default = null, bool $passPositions = false): array|float"},{"type":"API","title":"VectorizedFilter","url":"http:\/\/tessero.org\/docs\/api\/tessero-vectorizedfilter","section":"Tessero","text":"Tessero\\VectorizedFilter vectorizedFilter vectorizedFilter(array $input, callable $function, array|int|null $size = null, ?array $footprint = null, string $mode = 'reflect', ?float $cval = null, array|int|null $origin = null): array"},{"type":"API","title":"GenericFilter1d","url":"http:\/\/tessero.org\/docs\/api\/tessero-ndimage-genericfilter1d","section":"Tessero\\Ndimage","text":"Tessero\\Ndimage\\GenericFilter1d apply apply(array $input, callable $function, int $filterSize, int $axis = -1, string $mode = 'reflect', float $cval = 0.0, int $origin = 0): array"},{"type":"API","title":"NdimageFns","url":"http:\/\/tessero.org\/docs\/api\/tessero-ndimagefns","section":"Tessero","text":"Tessero\\NdimageFns genericGradientMagnitude genericGradientMagnitude(object $input, callable $derivative, string $mode = 'reflect', float $cval = 0.0): object genericLaplace genericLaplace(object $input, callable $derivative2, string $mode = 'reflect', float $cval = 0.0): object"},{"type":"API","title":"Normal","url":"http:\/\/tessero.org\/docs\/api\/tessero-stats-normal","section":"Tessero\\Stats","text":"Tessero\\Stats\\Normal __construct __construct(mixed $mu = 0.0, mixed $sigma = 1.0) pdf pdf(mixed $x): Tessero\\NDArray|float logpdf logpdf(mixed $x): Tessero\\NDArray|float cdf cdf(mixed $x): Tessero\\NDArray|float logcdf logcdf(mixed $x): Tessero\\NDArray|float ccdf ccdf(mixed $x): Tessero\\NDArray|float logccdf logccdf(mixed $x): Tessero\\NDArray|float icdf icdf(mixed $p): Tessero\\NDArray|float iccdf iccdf(mixed $p): Tessero\\NDArray|float ilogcdf ilogcdf(mixed $y): Tessero\\NDArray|float ilogccdf ilogccdf(mixed $y): Tessero\\NDArray|float mean mean(): Tessero\\NDArray|float median median(): Tessero\\NDArray|float variance variance(): Tessero\\NDArray|float standard_deviation standard_deviation(): Tessero\\NDArray|float skewness skewness(): Tessero\\NDArray|float kurtosis kurtosis(): Tessero\\NDArray|float entropy entropy(): Tessero\\NDArray|float mode mode(): Tessero\\NDArray|float support support(): array moment moment(int $order, string $kind = 'raw'): Tessero\\NDArray|float"},{"type":"API","title":"Uniform","url":"http:\/\/tessero.org\/docs\/api\/tessero-stats-uniform","section":"Tessero\\Stats","text":"Tessero\\Stats\\Uniform __construct __construct(mixed $a = 0.0, mixed $b = 1.0) pdf pdf(mixed $x): Tessero\\NDArray|float logpdf logpdf(mixed $x): Tessero\\NDArray|float cdf cdf(mixed $x): Tessero\\NDArray|float logcdf logcdf(mixed $x): Tessero\\NDArray|float ccdf ccdf(mixed $x): Tessero\\NDArray|float logccdf logccdf(mixed $x): Tessero\\NDArray|float icdf icdf(mixed $p): Tessero\\NDArray|float iccdf iccdf(mixed $p): Tessero\\NDArray|float ilogcdf ilogcdf(mixed $y): Tessero\\NDArray|float ilogccdf ilogccdf(mixed $y): Tessero\\NDArray|float mean mean(): Tessero\\NDArray|float median median(): Tessero\\NDArray|float variance variance(): Tessero\\NDArray|float standard_deviation standard_deviation(): Tessero\\NDArray|float skewness skewness(): Tessero\\NDArray|float kurtosis kurtosis(): Tessero\\NDArray|float entropy entropy(): Tessero\\NDArray|float mode mode(): Tessero\\NDArray|float support support(): array moment moment(int $order, string $kind = 'raw'): Tessero\\NDArray|float"},{"type":"API","title":"OrthoGroup","url":"http:\/\/tessero.org\/docs\/api\/tessero-stats-orthogroup","section":"Tessero\\Stats","text":"Tessero\\Stats\\OrthoGroup rvs rvs(int $dim, Tessero\\Random\\Generator|array|int|null $rng = null): Tessero\\NDArray rvsSpecial rvsSpecial(int $dim, Tessero\\Random\\Generator|array|int|null $rng = null): Tessero\\NDArray"},{"type":"API","title":"UnitaryGroup","url":"http:\/\/tessero.org\/docs\/api\/tessero-stats-unitarygroup","section":"Tessero\\Stats","text":"Tessero\\Stats\\UnitaryGroup rvs rvs(int $dim, Tessero\\Random\\Generator|array|int|null $rng = null): Tessero\\NDArray"},{"type":"API","title":"UniformDirection","url":"http:\/\/tessero.org\/docs\/api\/tessero-stats-uniformdirection","section":"Tessero\\Stats","text":"Tessero\\Stats\\UniformDirection rvs rvs(int $dim, array|int|null $size, object $rng): array"},{"type":"API","title":"Bootstrap","url":"http:\/\/tessero.org\/docs\/api\/tessero-stats-bootstrap","section":"Tessero\\Stats","text":"Tessero\\Stats\\Bootstrap bootstrap bootstrap(array $data, callable $statistic, int $nResamples = 9999, string $method = 'percentile', float $confidenceLevel = 0.95, string $alternative = 'two-sided', Tessero\\Random\\Generator|array|int|null $rng = null): array"},{"type":"API","title":"MonteCarloTest","url":"http:\/\/tessero.org\/docs\/api\/tessero-stats-montecarlotest","section":"Tessero\\Stats","text":"Tessero\\Stats\\MonteCarloTest monteCarloTest monteCarloTest(array $data, array $rvs, callable $statistic, int $nResamples = 9999, string $alternative = 'two-sided'): array makeRvs makeRvs(Tessero\\Random\\Generator $gen, string $kind, array $params = []): callable"},{"type":"API","title":"Logistic","url":"http:\/\/tessero.org\/docs\/api\/tessero-stats-logistic","section":"Tessero\\Stats","text":"Tessero\\Stats\\Logistic __construct __construct(mixed $loc = 0.0, mixed $scale = 1.0) pdf pdf(mixed $x): Tessero\\NDArray|float logpdf logpdf(mixed $x): Tessero\\NDArray|float cdf cdf(mixed $x): Tessero\\NDArray|float logcdf logcdf(mixed $x): Tessero\\NDArray|float ccdf ccdf(mixed $x): Tessero\\NDArray|float logccdf logccdf(mixed $x): Tessero\\NDArray|float icdf icdf(mixed $p): Tessero\\NDArray|float iccdf iccdf(mixed $p): Tessero\\NDArray|float ilogcdf ilogcdf(mixed $y): Tessero\\NDArray|float ilogccdf ilogccdf(mixed $y): Tessero\\NDArray|float mean mean(): Tessero\\NDArray|float median median(): Tessero\\NDArray|float variance variance(): Tessero\\NDArray|float standard_deviation standard_deviation(): Tessero\\NDArray|float skewness skewness(): Tessero\\NDArray|float kurtosis kurtosis(): Tessero\\NDArray|float entropy entropy(): Tessero\\NDArray|float mode mode(): Tessero\\NDArray|float support support(): array moment moment(int $order, string $kind = 'raw'): Tessero\\NDArray|float"},{"type":"API","title":"Binomial","url":"http:\/\/tessero.org\/docs\/api\/tessero-stats-binomial","section":"Tessero\\Stats","text":"Tessero\\Stats\\Binomial __construct __construct(mixed $n = 1, mixed $p = 0.5) pmf pmf(mixed $k): Tessero\\NDArray|float logpmf logpmf(mixed $k): Tessero\\NDArray|float pdf pdf(mixed $k): Tessero\\NDArray|float logpdf logpdf(mixed $k): Tessero\\NDArray|float cdf cdf(mixed $x): Tessero\\NDArray|float logcdf logcdf(mixed $x): Tessero\\NDArray|float ccdf ccdf(mixed $x): Tessero\\NDArray|float logccdf logccdf(mixed $x): Tessero\\NDArray|float icdf icdf(mixed $p): Tessero\\NDArray|float iccdf iccdf(mixed $p): Tessero\\NDArray|float ilogcdf ilogcdf(mixed $y): Tessero\\NDArray|float ilogccdf ilogccdf(mixed $y): Tessero\\NDArray|float mean mean(): Tessero\\NDArray|float median median(): Tessero\\NDArray|float variance variance(): Tessero\\NDArray|float standard_deviation standard_deviation(): Tessero\\NDArray|float skewness skewness(): Tessero\\NDArray|float kurtosis kurtosis(): Tessero\\NDArray|float entropy entropy(): Tessero\\NDArray|float mode mode(): Tessero\\NDArray|float support support(): array moment moment(int $order, string $kind = 'raw'): Tessero\\NDArray|float"},{"type":"API","title":"Truncated","url":"http:\/\/tessero.org\/docs\/api\/tessero-stats-truncated","section":"Tessero\\Stats","text":"Tessero\\Stats\\Truncated __construct __construct(Tessero\\Stats\\Distribution $base, float $lb, float $ub) pdf pdf(mixed $x): Tessero\\NDArray|float logpdf logpdf(mixed $x): Tessero\\NDArray|float cdf cdf(mixed $x): Tessero\\NDArray|float logcdf logcdf(mixed $x): Tessero\\NDArray|float ccdf ccdf(mixed $x): Tessero\\NDArray|float logccdf logccdf(mixed $x): Tessero\\NDArray|float icdf icdf(mixed $q): Tessero\\NDArray|float iccdf iccdf(mixed $q): Tessero\\NDArray|float median median(): float support support(): array"},{"type":"API","title":"OrderStatistic","url":"http:\/\/tessero.org\/docs\/api\/tessero-stats-orderstatistic","section":"Tessero\\Stats","text":"Tessero\\Stats\\OrderStatistic __construct __construct(Tessero\\Stats\\Distribution $base, int $n, int $r) pdf pdf(mixed $x): Tessero\\NDArray|float logpdf logpdf(mixed $x): Tessero\\NDArray|float cdf cdf(mixed $x): Tessero\\NDArray|float logcdf logcdf(mixed $x): Tessero\\NDArray|float ccdf ccdf(mixed $x): Tessero\\NDArray|float logccdf logccdf(mixed $x): Tessero\\NDArray|float icdf icdf(mixed $q): Tessero\\NDArray|float iccdf iccdf(mixed $q): Tessero\\NDArray|float median median(): float support support(): array"},{"type":"API","title":"Mixture","url":"http:\/\/tessero.org\/docs\/api\/tessero-stats-mixture","section":"Tessero\\Stats","text":"Tessero\\Stats\\Mixture __construct __construct(array $components, ?array $weights = null) pdf pdf(mixed $x): Tessero\\NDArray|float logpdf logpdf(mixed $x): Tessero\\NDArray|float cdf cdf(mixed $x): Tessero\\NDArray|float logcdf logcdf(mixed $x): Tessero\\NDArray|float ccdf ccdf(mixed $x): Tessero\\NDArray|float logccdf logccdf(mixed $x): Tessero\\NDArray|float mean mean(): float variance variance(): float standard_deviation standard_deviation(): float median median(): float icdf icdf(mixed $q): Tessero\\NDArray|float iccdf iccdf(mixed $q): Tessero\\NDArray|float support support(): array"},{"type":"API","title":"Transformed","url":"http:\/\/tessero.org\/docs\/api\/tessero-stats-transformed","section":"Tessero\\Stats","text":"Tessero\\Stats\\Transformed exp exp(Tessero\\Stats\\Distribution $base): self log log(Tessero\\Stats\\Distribution $base): self abs abs(Tessero\\Stats\\Distribution $base): self pdf pdf(mixed $x): Tessero\\NDArray|float logpdf logpdf(mixed $x): Tessero\\NDArray|float cdf cdf(mixed $x): Tessero\\NDArray|float logcdf logcdf(mixed $x): Tessero\\NDArray|float ccdf ccdf(mixed $x): Tessero\\NDArray|float logccdf logccdf(mixed $x): Tessero\\NDArray|float icdf icdf(mixed $q): Tessero\\NDArray|float iccdf iccdf(mixed $q): Tessero\\NDArray|float median median(): float support support(): array"},{"type":"API","title":"MatrixT","url":"http:\/\/tessero.org\/docs\/api\/tessero-stats-matrixt","section":"Tessero\\Stats","text":"Tessero\\Stats\\MatrixT __construct __construct(mixed $mean, mixed $rowSpread, mixed $colSpread, float $df) logpdf logpdf(mixed $x): float pdf pdf(mixed $x): float"},{"type":"API","title":"NormalInverseGamma","url":"http:\/\/tessero.org\/docs\/api\/tessero-stats-normalinversegamma","section":"Tessero\\Stats","text":"Tessero\\Stats\\NormalInverseGamma __construct __construct(float $mu = 0.0, float $lmbda = 1.0, float $a = 1.0, float $b = 1.0) logpdf logpdf(float $x, float $s2): float pdf pdf(float $x, float $s2): float mean mean(): array var var(): array"},{"type":"API","title":"MakeSmoothingSpline","url":"http:\/\/tessero.org\/docs\/api\/tessero-interpolate-makesmoothingspline","section":"Tessero\\Interpolate","text":"Tessero\\Interpolate\\MakeSmoothingSpline __construct __construct(array $x, array $y, ?array $w = null, ?float $lam = null) gcv gcv(float $lam, array $X, array $XtWX, array $wE, array $XtE, array $y): float query query(array $xq): array tck tck(): array"},{"type":"API","title":"LinearNDInterpolator","url":"http:\/\/tessero.org\/docs\/api\/tessero-interpolate-linearndinterpolator","section":"Tessero\\Interpolate","text":"Tessero\\Interpolate\\LinearNDInterpolator __construct __construct(array $points, array $values, float $fillValue = NAN, bool $rescale = false) query query(array $xi): array"},{"type":"API","title":"DifferentialEvolution","url":"http:\/\/tessero.org\/docs\/api\/tessero-optimize-differentialevolution","section":"Tessero\\Optimize","text":"Tessero\\Optimize\\DifferentialEvolution solve solve(callable $func, array $bounds, array|int|null $seed = null, string $strategy = 'best1bin', int $maxiter = 1000, int $popsize = 15, float $tol = 0.01, array|float $mutation = [], float $recombination = 0.7, float $atol = 0.0, bool $polish = false): Tessero\\Optimize\\OptimizeResult"},{"type":"API","title":"DualAnnealing","url":"http:\/\/tessero.org\/docs\/api\/tessero-optimize-dualannealing","section":"Tessero\\Optimize","text":"Tessero\\Optimize\\DualAnnealing minimize minimize(callable $func, array $bounds, int $maxiter = 1000, float $initialTemp = 5230.0, float $restartTempRatio = 2.0E-5, float $visit = 2.62, float $accept = -5.0, float $maxfun = 10000000.0, array|int|null $rng = null, bool $noLocalSearch = true): array"},{"type":"API","title":"BasinHopping","url":"http:\/\/tessero.org\/docs\/api\/tessero-optimize-basinhopping","section":"Tessero\\Optimize","text":"Tessero\\Optimize\\BasinHopping solve solve(callable $func, array $x0, array|int|null $seed = null, int $niter = 100, float $T = 1.0, float $stepsize = 0.5, string $method = 'L-BFGS-B'): Tessero\\Optimize\\OptimizeResult"},{"type":"API","title":"Direct","url":"http:\/\/tessero.org\/docs\/api\/tessero-optimize-direct","section":"Tessero\\Optimize","text":"Tessero\\Optimize\\Direct minimize minimize(callable $func, array $bounds, float $eps = 0.0001, ?int $maxfun = null, int $maxiter = 1000, bool $locallyBiased = true, float $fMin = -INF, float $fMinRtol = 0.0001, float $volTol = 1.0E-16, float $lenTol = 1.0E-6): Tessero\\Optimize\\OptimizeResult"},{"type":"API","title":"Shgo","url":"http:\/\/tessero.org\/docs\/api\/tessero-optimize-shgo","section":"Tessero\\Optimize","text":"Tessero\\Optimize\\Shgo minimize minimize(callable $func, array $bounds, string $samplingMethod = 'simplicial'): Tessero\\Optimize\\OptimizeResult minimizeFull minimizeFull(callable $func, array $bounds): array"},{"type":"API","title":"LineSearch","url":"http:\/\/tessero.org\/docs\/api\/tessero-optimize-linesearch","section":"Tessero\\Optimize","text":"Tessero\\Optimize\\LineSearch approxFprime approxFprime(callable $f, array $xk, array|float $epsilon = 1.4901161193847656E-8, ?float $f0 = null): array lineSearch lineSearch(callable $f, callable $fprime, array $xk, array $pk, ?array $gfk = null, ?float $oldFval = null, ?float $oldOldFval = null, float $c1 = 0.0001, float $c2 = 0.9, ?float $amax = null, ?callable $extraCondition = null, int $maxiter = 10): array scalarSearchWolfe2 scalarSearchWolfe2(callable $phi, callable $derphi, ?float $phi0 = null, ?float $oldPhi0 = null, ?float $derphi0 = null, float $c1 = 0.0001, float $c2 = 0.9, ?float $amax = null, ?callable $extraCondition = null, int $maxiter = 10): array"},{"type":"API","title":"NestedQuad","url":"http:\/\/tessero.org\/docs\/api\/tessero-integrate-nestedquad","section":"Tessero\\Integrate","text":"Tessero\\Integrate\\NestedQuad dblquad dblquad(callable $func, float $a, float $b, callable $gfun, callable $hfun, float $epsabs = 1.49E-8, float $epsrel = 1.49E-8): array tplquad tplquad(callable $func, float $a, float $b, callable $gfun, callable $hfun, callable $qfun, callable $rfun, float $epsabs = 1.49E-8, float $epsrel = 1.49E-8): array nquad nquad(callable $func, array $ranges, float $epsabs = 1.49E-8, float $epsrel = 1.49E-8): array"},{"type":"API","title":"Nsum","url":"http:\/\/tessero.org\/docs\/api\/tessero-integrate-nsum","section":"Tessero\\Integrate","text":"Tessero\\Integrate\\Nsum nsum nsum(callable $f, float $a, ?float $b = null, float $step = 1.0): array"},{"type":"API","title":"NonlinSolve","url":"http:\/\/tessero.org\/docs\/api\/tessero-optimize-nonlinsolve","section":"Tessero\\Optimize","text":"Tessero\\Optimize\\NonlinSolve broyden1 broyden1(callable $F, array $xin, ?int $maxiter = null): array broyden2 broyden2(callable $F, array $xin, ?int $maxiter = null): array anderson anderson(callable $F, array $xin, ?int $maxiter = null): array diagbroyden diagbroyden(callable $F, array $xin, ?int $maxiter = null): array linearmixing linearmixing(callable $F, array $xin, ?int $maxiter = null): array excitingmixing excitingmixing(callable $F, array $xin, ?int $maxiter = null): array newtonKrylov newtonKrylov(callable $F, array $xin, ?int $maxiter = null): array nonlinSolve nonlinSolve(callable $F, array $xin, string $jacobian, ?int $maxiter = null): array n2 n2(array $v): float safeNorm safeNorm(array $v): float dot dot(array $a, array $b): float solveLin solveLin(array $A, array $b): array"},{"type":"API","title":"BroydenFirst","url":"http:\/\/tessero.org\/docs\/api\/tessero-optimize-broydenfirst","section":"Tessero\\Optimize","text":"Tessero\\Optimize\\BroydenFirst __construct __construct(?float $alpha = null) setup setup(array $x, array $F, callable $func): void solve solve(array $f, float $tol = 0.0): array update update(array $x, array $f): void"},{"type":"API","title":"KrylovJacobian","url":"http:\/\/tessero.org\/docs\/api\/tessero-optimize-krylovjacobian","section":"Tessero\\Optimize","text":"Tessero\\Optimize\\KrylovJacobian __construct __construct(int $innerMaxiter = 20) setup setup(array $x, array $F, callable $func): void update update(array $x, array $f): void solve solve(array $f, float $tol = 0.0): array matvec matvec(array $v): array"},{"type":"API","title":"InverseJacobian","url":"http:\/\/tessero.org\/docs\/api\/tessero-optimize-inversejacobian","section":"Tessero\\Optimize","text":"Tessero\\Optimize\\InverseJacobian __construct __construct(Tessero\\Optimize\\JacobianApprox $jacobian) jacobian jacobian(): Tessero\\Optimize\\JacobianApprox setup setup(array $x, array $F, callable $func): void matvec matvec(array $v): array update update(array $x, array $f): void"},{"type":"API","title":"Derivative","url":"http:\/\/tessero.org\/docs\/api\/tessero-differentiate-derivative","section":"Tessero\\Differentiate","text":"Tessero\\Differentiate\\Derivative derivative derivative(callable $f, float $x, ?float $atol = null, ?float $rtol = null, int $maxiter = 10, int $order = 8, float $initialStep = 0.5, float $stepFactor = 2.0): array jacobian jacobian(callable $f, array $x, ?float $atol = null, ?float $rtol = null, int $maxiter = 10, int $order = 8, float $initialStep = 0.5, float $stepFactor = 2.0): array hessian hessian(callable $f, array $x, ?float $atol = null, ?float $rtol = null, int $maxiter = 10, int $order = 8, float $initialStep = 0.5, float $stepFactor = 2.0): array"},{"type":"API","title":"SolveIvp","url":"http:\/\/tessero.org\/docs\/api\/tessero-integrate-solveivp","section":"Tessero\\Integrate","text":"Tessero\\Integrate\\SolveIvp solve solve(callable $fun, array $tSpan, array|float $y0, array $tEval, string $method = 'RK45', float $rtol = 0.001, float $atol = 1.0E-6): array odeint odeint(callable $func, array|float $y0, array $t, bool $tfirst = false, float $rtol = 1.49012E-8, float $atol = 1.49012E-8): array"},{"type":"API","title":"SolveBvp","url":"http:\/\/tessero.org\/docs\/api\/tessero-integrate-solvebvp","section":"Tessero\\Integrate","text":"Tessero\\Integrate\\SolveBvp solve solve(callable $fun, callable $bc, array $x, array $y, ?array $p = null, float $tol = 0.001, int $maxNodes = 1000, ?float $bcTol = null): array sol sol(array $result, array $xq, array $meshX, int $nu = 0): array"},{"type":"API","title":"Lebedev","url":"http:\/\/tessero.org\/docs\/api\/tessero-integrate-lebedev","section":"Tessero\\Integrate","text":"Tessero\\Integrate\\Lebedev lebedevRule lebedevRule(int $n): array"},{"type":"API","title":"Cubature","url":"http:\/\/tessero.org\/docs\/api\/tessero-integrate-cubature","section":"Tessero\\Integrate","text":"Tessero\\Integrate\\Cubature cubature cubature(callable $f, array $a, array $b, string $rule = 'gk21', float $rtol = 1.0E-8, float $atol = 0.0, int $maxSubdivisions = 10000): array"},{"type":"API","title":"PermutationTest","url":"http:\/\/tessero.org\/docs\/api\/tessero-permutationtest","section":"Tessero","text":"Tessero\\PermutationTest permutationTest permutationTest(array $data, callable $statistic, string $permutationType = 'independent', string $alternative = 'two-sided'): array"},{"type":"API","title":"StatsBarnard","url":"http:\/\/tessero.org\/docs\/api\/tessero-statsbarnard","section":"Tessero","text":"Tessero\\StatsBarnard barnardExact barnardExact(array $table, string $alternative = 'two-sided', bool $pooled = true, int $n = 32): array"},{"type":"API","title":"Boschloo","url":"http:\/\/tessero.org\/docs\/api\/tessero-boschloo","section":"Tessero","text":"Tessero\\Boschloo boschlooExact boschlooExact(array $table, string $alternative = 'two-sided', int $n = 32): array"},{"type":"API","title":"LogRank","url":"http:\/\/tessero.org\/docs\/api\/tessero-logrank","section":"Tessero","text":"Tessero\\LogRank logrank logrank(array $xUncensored, array $xRight = [], array $yUncensored = [], array $yRight = [], string $alternative = 'two-sided'): array"},{"type":"API","title":"SphericalVoronoi","url":"http:\/\/tessero.org\/docs\/api\/tessero-spatial-sphericalvoronoi","section":"Tessero\\Spatial","text":"Tessero\\Spatial\\SphericalVoronoi __construct __construct(array $points, float $radius = 1.0, ?array $center = null, float $threshold = 1.0E-6)"},{"type":"API","title":"HalfspaceIntersection","url":"http:\/\/tessero.org\/docs\/api\/tessero-spatial-halfspaceintersection","section":"Tessero\\Spatial","text":"Tessero\\Spatial\\HalfspaceIntersection __construct __construct(array $halfspaces, array $interiorPoint)"},{"type":"API","title":"Ode","url":"http:\/\/tessero.org\/docs\/api\/tessero-integrate-ode","section":"Tessero\\Integrate","text":"Tessero\\Integrate\\Ode __construct __construct(callable $fun, bool $complex = false) complexOde complexOde(callable $fun): self setIntegrator setIntegrator(string $name, float $rtol = 1.0E-6, float $atol = 1.0E-12): self setInitialValue setInitialValue(array|float $y, float $t = 0.0): self setFParams setFParams(mixed ...$args): self integrate integrate(float $t): array successful successful(): bool t t(): float y y(): array"},{"type":"API","title":"StatsDunnett","url":"http:\/\/tessero.org\/docs\/api\/tessero-statsdunnett","section":"Tessero","text":"Tessero\\StatsDunnett dunnett dunnett(array $samples, array $control, string $alternative = 'two-sided', array|int|null $seed = null): array"},{"type":"API","title":"RvHistogram","url":"http:\/\/tessero.org\/docs\/api\/tessero-stats-rvhistogram","section":"Tessero\\Stats","text":"Tessero\\Stats\\RvHistogram __construct __construct(array $counts, array $binEdges, ?bool $density = null) fromHistogram fromHistogram(array $counts, array $binEdges, ?bool $density = null): self pdf pdf(mixed $x): mixed cdf cdf(mixed $x): mixed sf sf(mixed $x): mixed ppf ppf(mixed $q): mixed mean mean(): float var var(): float std std(): float median median(): float"},{"type":"API","title":"FindPeaksCwt","url":"http:\/\/tessero.org\/docs\/api\/tessero-signal-findpeakscwt","section":"Tessero\\Signal","text":"Tessero\\Signal\\FindPeaksCwt find find(array $vector, array $widths, ?array $maxDistances = null, ?float $gapThresh = null, ?int $minLength = null, float $minSnr = 1.0, float $noisePerc = 10.0, ?int $windowSize = null): array"},{"type":"API","title":"PlacePoles","url":"http:\/\/tessero.org\/docs\/api\/tessero-signal-placepoles","section":"Tessero\\Signal","text":"Tessero\\Signal\\PlacePoles place place(array $a, array $b, array $poles, string $method = 'YT', float $rtol = 0.001, int $maxiter = 30): array"},{"type":"API","title":"LSQBivariateSpline","url":"http:\/\/tessero.org\/docs\/api\/tessero-interpolate-lsqbivariatespline","section":"Tessero\\Interpolate","text":"Tessero\\Interpolate\\LSQBivariateSpline __construct __construct(array $x, array $y, array $z, array $tx, array $ty, int $kx = 3, int $ky = 3) ev ev(array $xq, array $yq): array getCoeffs getCoeffs(): array getKnots getKnots(): array"},{"type":"API","title":"BivariateSpline","url":"http:\/\/tessero.org\/docs\/api\/tessero-interpolate-bivariatespline","section":"Tessero\\Interpolate","text":"Tessero\\Interpolate\\BivariateSpline __construct __construct(array $x, array $y, array $z, ?array $w = null, int $kx = 3, int $ky = 3, ?float $s = null) ev ev(array $xi, array $yi): array getKnots getKnots(): array getCoeffs getCoeffs(): array"},{"type":"API","title":"SmoothBivariateSpline","url":"http:\/\/tessero.org\/docs\/api\/tessero-interpolate-smoothbivariatespline","section":"Tessero\\Interpolate","text":"Tessero\\Interpolate\\SmoothBivariateSpline __construct __construct(array $x, array $y, array $z, ?array $w = null, int $kx = 3, int $ky = 3, ?float $s = null) bisplrep bisplrep(array $x, array $y, array $z, ?array $w = null, int $kx = 3, int $ky = 3, ?float $s = null): array"},{"type":"API","title":"SmoothSphereBivariateSpline","url":"http:\/\/tessero.org\/docs\/api\/tessero-interpolate-smoothspherebivariatespline","section":"Tessero\\Interpolate","text":"Tessero\\Interpolate\\SmoothSphereBivariateSpline __construct __construct(array $theta, array $phi, array $r, ?array $w = null, float $s = 0.0, float $eps = 1.0E-16) getKnots getKnots(): array getCoeffs getCoeffs(): array"},{"type":"API","title":"LSQSphereBivariateSpline","url":"http:\/\/tessero.org\/docs\/api\/tessero-interpolate-lsqspherebivariatespline","section":"Tessero\\Interpolate","text":"Tessero\\Interpolate\\LSQSphereBivariateSpline __construct __construct(array $theta, array $phi, array $r, array $tt, array $tp, ?array $w = null, float $eps = 1.0E-16) getKnots getKnots(): array getCoeffs getCoeffs(): array"},{"type":"API","title":"RectSphereBivariateSpline","url":"http:\/\/tessero.org\/docs\/api\/tessero-interpolate-rectspherebivariatespline","section":"Tessero\\Interpolate","text":"Tessero\\Interpolate\\RectSphereBivariateSpline __construct __construct(array $u, array $v, array $r, float $s = 0.0) getKnots getKnots(): array getCoeffs getCoeffs(): array"},{"type":"API","title":"Czt","url":"http:\/\/tessero.org\/docs\/api\/tessero-signal-czt","section":"Tessero\\Signal","text":"Tessero\\Signal\\Czt __construct __construct(int $n, mixed $m = null, mixed $w = null, mixed $a = 1) transform transform(mixed $x): mixed points points(): mixed"},{"type":"API","title":"ZoomFft","url":"http:\/\/tessero.org\/docs\/api\/tessero-signal-zoomfft","section":"Tessero\\Signal","text":"Tessero\\Signal\\ZoomFft __construct __construct(int $n, mixed $fn, mixed $m = null, mixed $fs = 2, bool $endpoint = false) transform transform(mixed $x): mixed"},{"type":"API","title":"Covariance","url":"http:\/\/tessero.org\/docs\/api\/tessero-stats-covariance","section":"Tessero\\Stats","text":"Tessero\\Stats\\Covariance fromPrecision fromPrecision(mixed $precision, mixed $covariance = null): self fromCholesky fromCholesky(mixed $cholesky): self fromDiagonal fromDiagonal(mixed $diagonal): self fromEigendecomposition fromEigendecomposition(array $eigendecomposition): self covariance covariance(): array logPdet logPdet(): float rank rank(): int shape shape(): array whiten whiten(mixed $x): array colorize colorize(mixed $x): array"},{"type":"API","title":"CensoredData","url":"http:\/\/tessero.org\/docs\/api\/tessero-stats-censoreddata","section":"Tessero\\Stats","text":"Tessero\\Stats\\CensoredData __construct __construct(mixed $uncensored = null, mixed $left = null, mixed $right = null, mixed $interval = null) rightCensored rightCensored(mixed $x, mixed $censored): self leftCensored leftCensored(mixed $x, mixed $censored): self intervalCensored intervalCensored(mixed $low, mixed $high): self uncensored uncensored(): array left left(): array right right(): array interval interval(): array len len(): int numCensored numCensored(): int"},{"type":"API","title":"NoConvergence","url":"http:\/\/tessero.org\/docs\/api\/tessero-optimize-noconvergence","section":"Tessero\\Optimize","text":"Tessero\\Optimize\\NoConvergence __construct __construct(string $message = '', int $code = 0, ?Throwable $previous = null)"},{"type":"API","title":"HessianUpdateStrategy","url":"http:\/\/tessero.org\/docs\/api\/tessero-optimize-hessianupdatestrategy","section":"Tessero\\Optimize","text":"Tessero\\Optimize\\HessianUpdateStrategy __construct __construct(string|float $initScale = 'auto') initialize initialize(int $n, string $approxType = 'hess'): void update update(array $dx, array $dg): void dot dot(array $p): array getMatrix getMatrix(): array"},{"type":"API","title":"Bfgs","url":"http:\/\/tessero.org\/docs\/api\/tessero-optimize-bfgs","section":"Tessero\\Optimize","text":"Tessero\\Optimize\\Bfgs __construct __construct(string $exceptionStrategy = 'skip_update', ?float $minCurvature = null, string|float $initScale = 'auto')"},{"type":"API","title":"Sr1","url":"http:\/\/tessero.org\/docs\/api\/tessero-optimize-sr1","section":"Tessero\\Optimize","text":"Tessero\\Optimize\\Sr1 __construct __construct(float $minDenominator = 1.0E-8, string|float $initScale = 'auto')"},{"type":"API","title":"QhullError","url":"http:\/\/tessero.org\/docs\/api\/tessero-spatial-qhullerror","section":"Tessero\\Spatial","text":"Tessero\\Spatial\\QhullError __construct __construct(string $message = '', int $code = 0, ?Throwable $previous = null)"},{"type":"API","title":"BootstrapMethod","url":"http:\/\/tessero.org\/docs\/api\/tessero-stats-bootstrapmethod","section":"Tessero\\Stats","text":"Tessero\\Stats\\BootstrapMethod __construct __construct(int $n_resamples = 9999, ?int $batch = null, mixed $rng = null, string $method = 'BCa')"},{"type":"API","title":"MonteCarloMethod","url":"http:\/\/tessero.org\/docs\/api\/tessero-stats-montecarlomethod","section":"Tessero\\Stats","text":"Tessero\\Stats\\MonteCarloMethod __construct __construct(int $n_resamples = 9999, ?int $batch = null, mixed $rvs = null, mixed $rng = null)"},{"type":"API","title":"PermutationMethod","url":"http:\/\/tessero.org\/docs\/api\/tessero-stats-permutationmethod","section":"Tessero\\Stats","text":"Tessero\\Stats\\PermutationMethod __construct __construct(int $n_resamples = 9999, ?int $batch = null, mixed $rng = null)"},{"type":"API","title":"Lti","url":"http:\/\/tessero.org\/docs\/api\/tessero-signal-lti","section":"Tessero\\Signal","text":"Tessero\\Signal\\Lti create create(mixed ...$system): Tessero\\Signal\\Lti poles poles(): array zeros zeros(): array toTf toTf(): Tessero\\Signal\\TransferFunction toZpk toZpk(): Tessero\\Signal\\ZerosPolesGain toSs toSs(): Tessero\\Signal\\StateSpace impulse impulse(mixed $T): array step step(mixed $T): array bode bode(mixed $w): array freqresp freqresp(mixed $w): array dimpulse dimpulse(int $n = 100): array dstep dstep(int $n = 100): array dbode dbode(mixed $w): array"},{"type":"API","title":"Dlti","url":"http:\/\/tessero.org\/docs\/api\/tessero-signal-dlti","section":"Tessero\\Signal","text":"Tessero\\Signal\\Dlti create create(array $system, float $dt = 1.0): Tessero\\Signal\\Lti"},{"type":"API","title":"StateSpace","url":"http:\/\/tessero.org\/docs\/api\/tessero-signal-statespace","section":"Tessero\\Signal","text":"Tessero\\Signal\\StateSpace __construct __construct(mixed $A, mixed $B, mixed $C, mixed $D, ?float $dt = null) poles poles(): array zeros zeros(): array toTf toTf(): Tessero\\Signal\\TransferFunction toZpk toZpk(): Tessero\\Signal\\ZerosPolesGain toSs toSs(): Tessero\\Signal\\StateSpace"},{"type":"API","title":"TransferFunction","url":"http:\/\/tessero.org\/docs\/api\/tessero-signal-transferfunction","section":"Tessero\\Signal","text":"Tessero\\Signal\\TransferFunction __construct __construct(mixed $num, mixed $den, ?float $dt = null) poles poles(): array zeros zeros(): array toTf toTf(): Tessero\\Signal\\TransferFunction toZpk toZpk(): Tessero\\Signal\\ZerosPolesGain toSs toSs(): Tessero\\Signal\\StateSpace"},{"type":"API","title":"ZerosPolesGain","url":"http:\/\/tessero.org\/docs\/api\/tessero-signal-zerospolesgain","section":"Tessero\\Signal","text":"Tessero\\Signal\\ZerosPolesGain __construct __construct(mixed $z, mixed $p, mixed $k, ?float $dt = null) poles poles(): array zeros zeros(): array toTf toTf(): Tessero\\Signal\\TransferFunction toZpk toZpk(): Tessero\\Signal\\ZerosPolesGain toSs toSs(): Tessero\\Signal\\StateSpace"},{"type":"API","title":"ShortTimeFFT","url":"http:\/\/tessero.org\/docs\/api\/tessero-signal-shorttimefft","section":"Tessero\\Signal","text":"Tessero\\Signal\\ShortTimeFFT __construct __construct(array $win, int $hop, float $fs = 1.0, ?int $mfft = null, string $fftMode = 'onesided', ?int $phaseShift = 0) onesidedFft onesidedFft(): bool fPts fPts(): int deltaT deltaT(): float deltaF deltaF(): float f f(): array pMin pMin(): int kMin kMin(): int pMax pMax(int $n): int kMax kMax(int $n): int pNum pNum(int $n): int pRange pRange(int $n, ?int $p0 = null, ?int $p1 = null): array stft stft(array $x): array istft istft(array $S, int $k0 = 0, ?int $k1 = null): array spectrogram spectrogram(array $x): array dualWin dualWin(): array"},{"type":"API","title":"SparseRandom","url":"http:\/\/tessero.org\/docs\/api\/tessero-sparse-sparserandom","section":"Tessero\\Sparse","text":"Tessero\\Sparse\\SparseRandom randomArray randomArray(array $shape, float $density = 0.01, Tessero\\Random\\Generator|array|int $rng = 0): array random random(int $m, ?int $n = null, float $density = 0.01, Tessero\\Random\\Generator|array|int $rng = 0): array rand rand(int $m, ?int $n = null, float $density = 0.01, Tessero\\Random\\Generator|array|int $rng = 0): array choiceNoReplace choiceNoReplace(Tessero\\Random\\Generator $g, int $pop, int $size): array"},{"type":"API","title":"GoodnessOfFit","url":"http:\/\/tessero.org\/docs\/api\/tessero-stats-goodnessoffit","section":"Tessero\\Stats","text":"Tessero\\Stats\\GoodnessOfFit goodnessOfFit goodnessOfFit(array $data, string $dist = 'norm', string $statistic = 'ad', array $knownParams = [], int $nMcSamples = 9999, int $seed = 0): array"},{"type":"API","title":"Power","url":"http:\/\/tessero.org\/docs\/api\/tessero-stats-power","section":"Tessero\\Stats","text":"Tessero\\Stats\\Power power power(string $test, array $rvs, array $nObservations, float $significance = 0.01, int $nResamples = 10000, int $seed = 0, array $testKwargs = []): array"},{"type":"API","title":"SplineFilter","url":"http:\/\/tessero.org\/docs\/api\/tessero-signal-splinefilter","section":"Tessero\\Signal","text":"Tessero\\Signal\\SplineFilter filter filter(mixed $iin, float $lmbda, string $signalClass, string $ndClass): mixed rootFromLambda rootFromLambda(float $lamb): array"},{"type":"API","title":"MakeDistribution","url":"http:\/\/tessero.org\/docs\/api\/tessero-stats-makedistribution","section":"Tessero\\Stats","text":"Tessero\\Stats\\MakeDistribution __construct __construct(string $name, array $shape = []) of of(string $name): Tessero\\Stats\\MakeDistributionFactory make make(string $name, array $shape = []): self pdf pdf(mixed $x): Tessero\\NDArray|float logpdf logpdf(mixed $x): Tessero\\NDArray|float cdf cdf(mixed $x): Tessero\\NDArray|float logcdf logcdf(mixed $x): Tessero\\NDArray|float ccdf ccdf(mixed $x): Tessero\\NDArray|float logccdf logccdf(mixed $x): Tessero\\NDArray|float icdf icdf(mixed $p): Tessero\\NDArray|float iccdf iccdf(mixed $p): Tessero\\NDArray|float mean mean(): Tessero\\NDArray|float median median(): Tessero\\NDArray|float variance variance(): Tessero\\NDArray|float entropy entropy(): Tessero\\NDArray|float moment moment(int $order): Tessero\\NDArray|float support support(): array"},{"type":"API","title":"MakeDistributionFactory","url":"http:\/\/tessero.org\/docs\/api\/tessero-stats-makedistributionfactory","section":"Tessero\\Stats","text":"Tessero\\Stats\\MakeDistributionFactory __construct __construct(string $name) name name(): string"},{"type":"API","title":"RandomCorrelation","url":"http:\/\/tessero.org\/docs\/api\/tessero-stats-randomcorrelation","section":"Tessero\\Stats","text":"Tessero\\Stats\\RandomCorrelation rvs rvs(array $eigs, Tessero\\Random\\Generator|array|int|null $rng = null, float $tol = 1.0E-13, float $diagTol = 1.0E-7): array"},{"type":"API","title":"RandomTable","url":"http:\/\/tessero.org\/docs\/api\/tessero-stats-randomtable","section":"Tessero\\Stats","text":"Tessero\\Stats\\RandomTable rvs rvs(array $row, array $col, ?string $method = null, Tessero\\Random\\Generator|array|int|null $rng = null): array"},{"type":"API","title":"QmcQuad","url":"http:\/\/tessero.org\/docs\/api\/tessero-integrate-qmcquad","section":"Tessero\\Integrate","text":"Tessero\\Integrate\\QmcQuad qmcQuad qmcQuad(callable $func, array $a, array $b, array|int $seed, int $nEstimates = 8, int $nPoints = 1024): array"},{"type":"API","title":"ClarksonWoodruff","url":"http:\/\/tessero.org\/docs\/api\/tessero-linalg-clarksonwoodruff","section":"Tessero\\Linalg","text":"Tessero\\Linalg\\ClarksonWoodruff transform transform(Tessero\\NDArray|array $inputMatrix, int $sketchSize, Tessero\\Random\\Generator|array|int|null $rng = null): Tessero\\NDArray"},{"type":"API","title":"SuperLU","url":"http:\/\/tessero.org\/docs\/api\/tessero-sparse-linalg-superlu","section":"Tessero\\Sparse\\Linalg","text":"Tessero\\Sparse\\Linalg\\SuperLU __construct __construct(array $A, string $splinalg) splu splu(array $A, string $splinalg): self factorized factorized(array $A, string $splinalg): Tessero\\Sparse\\Linalg\\Factorized shape shape(): array solve solve(array $b): array"},{"type":"API","title":"Factorized","url":"http:\/\/tessero.org\/docs\/api\/tessero-sparse-linalg-factorized","section":"Tessero\\Sparse\\Linalg","text":"Tessero\\Sparse\\Linalg\\Factorized of of(array $A, string $splinalg): self solve solve(array $b): array"},{"type":"API","title":"LinearOperator","url":"http:\/\/tessero.org\/docs\/api\/tessero-sparse-linalg-linearoperator","section":"Tessero\\Sparse\\Linalg","text":"Tessero\\Sparse\\Linalg\\LinearOperator fromMatrix fromMatrix(array $matrix, string $dtype = 'float64'): self fromCallbacks fromCallbacks(array $shape, callable $matvec, ?callable $rmatvec = null, ?callable $matmat = null, string $dtype = 'float64'): self shape shape(): array dtype dtype(): string ndim ndim(): int matvec matvec(array $x): array rmatvec rmatvec(array $y): array matmat matmat(array $X): array dot dot(array $x): array adjoint adjoint(): self transpose transpose(): self getH getH(): self getT getT(): self scale scale(float $alpha): self add add(Tessero\\Sparse\\Linalg\\LinearOperator $other): self compose compose(Tessero\\Sparse\\Linalg\\LinearOperator $other): self"},{"type":"API","title":"LaplacianNd","url":"http:\/\/tessero.org\/docs\/api\/tessero-sparse-linalg-laplaciannd","section":"Tessero\\Sparse\\Linalg","text":"Tessero\\Sparse\\Linalg\\LaplacianNd __construct __construct(array $gridShape, string $boundaryConditions = 'neumann') shape shape(): array ndim ndim(): int boundaryConditions boundaryConditions(): string gridShape gridShape(): array toarray toarray(): array tosparse tosparse(): array eigenvalues eigenvalues(?int $m = null): array matvec matvec(array $x): array rmatvec rmatvec(array $y): array matmat matmat(array $X): array dot dot(array $x): array asLinearOperator asLinearOperator(): Tessero\\Sparse\\Linalg\\LinearOperator"},{"type":"API","title":"Aslinearoperator","url":"http:\/\/tessero.org\/docs\/api\/tessero-sparse-linalg-aslinearoperator","section":"Tessero\\Sparse\\Linalg","text":"Tessero\\Sparse\\Linalg\\Aslinearoperator aslinearoperator aslinearoperator(mixed $a): Tessero\\Sparse\\Linalg\\LinearOperator"},{"type":"API","title":"MT19937","url":"http:\/\/tessero.org\/docs\/api\/tessero-random-mt19937","section":"Tessero\\Random","text":"Tessero\\Random\\MT19937 __construct __construct(array|int $seed) nextUint32 nextUint32(): int nextDouble nextDouble(): float randomSample randomSample(int $n): array nextGauss nextGauss(): float standardNormal standardNormal(int $n): array randomInterval randomInterval(int $max): int randint randint(int $low, int $high, int $size): array permutation permutation(int $n): array shuffle shuffle(array $arr): void"},{"type":"API","title":"MultiscaleGraphcorr","url":"http:\/\/tessero.org\/docs\/api\/tessero-stats-multiscalegraphcorr","section":"Tessero\\Stats","text":"Tessero\\Stats\\MultiscaleGraphcorr multiscaleGraphcorr multiscaleGraphcorr(array $x, array $y, bool $computeDistance = true, int $reps = 1000, Tessero\\Random\\MT19937|int $randomState = 0, bool $isTwosamp = false): array"},{"type":"API","title":"Sobol","url":"http:\/\/tessero.org\/docs\/api\/tessero-stats-qmc-sobol","section":"Tessero\\Stats\\Qmc","text":"Tessero\\Stats\\Qmc\\Sobol __construct __construct(int $d, bool $scramble = true, ?int $seed = null, int $bits = 30) random random(int $n = 1): Tessero\\NDArray reset reset(): void"},{"type":"API","title":"SobolIndices","url":"http:\/\/tessero.org\/docs\/api\/tessero-stats-sobolindices","section":"Tessero\\Stats","text":"Tessero\\Stats\\SobolIndices sobolIndices sobolIndices(callable $func, int $n, array $dists, ?int $seed = null, bool $scramble = true): array"},{"type":"API","title":"NDArray","url":"http:\/\/tessero.org\/docs\/api\/tessero-ext-ndarray","section":"Tessero\\Ext","text":"Tessero\\Ext\\NDArray array array($data, ?string $dtype = \u2026) zeros zeros($shape, ?string $dtype = \u2026) ones ones($shape, ?string $dtype = \u2026) empty empty($shape, ?string $dtype = \u2026) full full($shape, $value, ?string $dtype = \u2026) arange arange($start, $stop = \u2026, $step = \u2026, ?string $dtype = \u2026) linspace linspace($start, $stop, $num = \u2026, $endpoint = \u2026) eye eye($n, $m = \u2026, $k = \u2026, ?string $dtype = \u2026) fromBytes fromBytes(string $bytes, string $dtype, $shape = \u2026) where where($cond, $x, $y) complex complex($real, $imag = \u2026) shape shape() strides strides() ndim ndim() size size() dtype dtype() isContiguous isContiguous() isView isView() count count(): int getIterator getIterator(): Iterator toArray toArray() toList toList() toBytes toBytes() toJson toJson() jsonSerialize jsonSerialize(): mixed item item(...$args) copy copy() astype astype(string $dtype) reshape reshape(...$args) ravel ravel() transpose transpose(?array $axes = \u2026) t t() flatten flatten() swapAxes swapAxes(int $axis1, int $axis2) squeeze squeeze(?int $axis = \u2026) nbytes nbytes() view view(string $dtype) round round(int $decimals = 0) nonzero nonzero() mT mT() trace trace(?int $offset = \u2026, ?int $axis1 = \u2026, ?int $axis2 = \u2026) diagonal diagonal(?int $offset = \u2026, ?int $axis1 = \u2026, ?int $axis2 = \u2026) repeat repeat($arg1, $arg2 = \u2026) compress compress($arg1, $arg2 = \u2026) choose choose($arg1, $arg2 = \u2026) searchsorted searchsorted($arg1, $arg2 = \u2026) partition partition($arg1, $arg2 = \u2026) argpartition argpartition($arg1, $arg2 = \u2026) fill fill($value) byteswap byteswap(bool $sync = \u2026) resize resize($value) take take($indices, ?int $axis = \u2026) put put($indices, $values, ?int $axis = \u2026) slice slice(string $spec) assign assign($value) add add($value) sub sub($value) mul mul($value) div div($value) pow pow($value) mod mod($value) floorDiv floorDiv($value) maximum maximum($value) minimum minimum($value) atan2 atan2($value) hypot hypot($value) eq eq($value) ne ne($value) lt lt($value) le le($value) gt gt($value) ge ge($value) logicalAnd logicalAn"},{"type":"API","title":"Math","url":"http:\/\/tessero.org\/docs\/api\/tessero-ext-math","section":"Tessero\\Ext","text":"Tessero\\Ext\\Math negative negative($x, ?Tessero\\Ext\\NDArray $out = \u2026) absolute absolute($x, ?Tessero\\Ext\\NDArray $out = \u2026) abs abs($x, ?Tessero\\Ext\\NDArray $out = \u2026) square square($x, ?Tessero\\Ext\\NDArray $out = \u2026) sign sign($x, ?Tessero\\Ext\\NDArray $out = \u2026) sqrt sqrt($x, ?Tessero\\Ext\\NDArray $out = \u2026) exp exp($x, ?Tessero\\Ext\\NDArray $out = \u2026) expm1 expm1($x, ?Tessero\\Ext\\NDArray $out = \u2026) log log($x, ?Tessero\\Ext\\NDArray $out = \u2026) log10 log10($x, ?Tessero\\Ext\\NDArray $out = \u2026) log2 log2($x, ?Tessero\\Ext\\NDArray $out = \u2026) log1p log1p($x, ?Tessero\\Ext\\NDArray $out = \u2026) sin sin($x, ?Tessero\\Ext\\NDArray $out = \u2026) cos cos($x, ?Tessero\\Ext\\NDArray $out = \u2026) tan tan($x, ?Tessero\\Ext\\NDArray $out = \u2026) arcsin arcsin($x, ?Tessero\\Ext\\NDArray $out = \u2026) arccos arccos($x, ?Tessero\\Ext\\NDArray $out = \u2026) arctan arctan($x, ?Tessero\\Ext\\NDArray $out = \u2026) sinh sinh($x, ?Tessero\\Ext\\NDArray $out = \u2026) cosh cosh($x, ?Tessero\\Ext\\NDArray $out = \u2026) tanh tanh($x, ?Tessero\\Ext\\NDArray $out = \u2026) floor floor($x, ?Tessero\\Ext\\NDArray $out = \u2026) ceil ceil($x, ?Tessero\\Ext\\NDArray $out = \u2026) rint rint($x, ?Tessero\\Ext\\NDArray $out = \u2026) reciprocal reciprocal($x, ?Tessero\\Ext\\NDArray $out = \u2026) isnan isnan($x, ?Tessero\\Ext\\NDArray $out = \u2026) isinf isinf($x, ?Tessero\\Ext\\NDArray $out = \u2026) isfinite isfinite($x, ?Tessero\\Ext\\NDArray $out = \u2026) invert invert($x, ?Tessero\\Ext\\NDArray $out = \u2026) real real($x, ?Tessero\\Ext\\NDArray $out = \u2026) imag imag($x, ?Tessero\\Ext\\NDArray $out = \u2026) conj conj($x, ?Tessero\\Ext\\NDArray $out = \u2026) angle angle($x, ?Tessero\\Ext\\NDArray $out = \u2026) add add($x, $y, ?Tessero\\Ext\\NDArray $out = \u2026) subtract subtract($x, $y, ?Tessero\\Ext\\NDArray $out = \u2026) multiply multiply($x, $y, ?Tessero\\Ext\\NDArray $out = \u2026) divide divide($x, $y, ?Tessero\\Ext\\NDArray $out = \u2026) power power($x, $y, ?Tessero\\Ext\\NDArray $out = \u2026) mod mod($x, $y, ?Tessero\\Ext\\NDArray $out = \u2026) remainder remainder($x, $y, ?Tessero\\Ext\\NDArray $out = \u2026) floorDivide floorDivide($x, $y, ?Tessero\\Ext\\NDArray $out = \u2026) maximu"},{"type":"API","title":"Engine","url":"http:\/\/tessero.org\/docs\/api\/tessero-ext-engine","section":"Tessero\\Ext","text":"Tessero\\Ext\\Engine version version() kernelVersion kernelVersion() simd simd() openmp openmp() setMaxThreads setMaxThreads(int $value) getMaxThreads getMaxThreads() setEpsilon setEpsilon(float $value) getEpsilon getEpsilon() setMemoryBudget setMemoryBudget(int $value) memoryBudget memoryBudget() memoryInUse memoryInUse() peakMemory peakMemory() info info() linprog linprog($c, $A_ub = \u2026, $b_ub = \u2026, $A_eq = \u2026, $b_eq = \u2026, ?array $bounds = \u2026, int $maxiter = \u2026) milp milp($c, $integrality, $A_ub = \u2026, $b_ub = \u2026, $A_eq = \u2026, $b_eq = \u2026, ?array $bounds = \u2026, int $nodeLimit = \u2026, float $mipRelGap = \u2026) mdpValueIteration mdpValueIteration($P, $R, float $gamma, float $epsilon = \u2026, int $maxIter = \u2026) mdpPolicyIteration mdpPolicyIteration($P, $R, float $gamma, int $evalSweeps = \u2026, int $maxIter = \u2026) mdpFiniteHorizon mdpFiniteHorizon($P, $R, int $horizon, float $gamma = \u2026) fft fft($x, bool $inverse = \u2026) random random(int $seed, $shape, float $a = \u2026, float $b = \u2026) normal normal(int $seed, $shape, float $a = \u2026, float $b = \u2026) integers integers(int $seed, $shape, int $low, int $high)"},{"type":"API","title":"Generator","url":"http:\/\/tessero.org\/docs\/api\/tessero-ext-random-generator","section":"Tessero\\Ext\\Random","text":"Tessero\\Ext\\Random\\Generator defaultRng defaultRng($seed = null) integers integers($low, $high = null, $size = null, $endpoint = false) bytes bytes(int $length) multivariateNormal multivariateNormal($mean, $cov, $size = null, $checkValid = 'warn', $tol = 1.0E-8, $method = 'svd') choice choice($a, $size = null, $replace = true, $p = null) dirichlet dirichlet($alpha, $size = null) multinomial multinomial(int $n, $pvals, $size = null) permuted permuted(Tessero\\Ext\\NDArray $x, $axis = null, $out = null) multivariateHypergeometric multivariateHypergeometric($colors, int $nsample, $size = null, $method = \u2026) shuffle shuffle($x) permutation permutation($x) getState getState() setState setState($words) random random($size = null, $dtype = 'float64') standardNormal standardNormal($size = null, $dtype = 'float64') standardExponential standardExponential($size = null, $dtype = 'float64', $method = 'zig') standardGamma standardGamma($shape, $size = null, $dtype = 'float64') gamma gamma($shape, $scale = 1.0, $size = null) beta beta($a, $b, $size = null) exponential exponential($scale = 1.0, $size = null) uniform uniform($low = 0.0, $high = 1.0, $size = null) normal normal($loc = 0.0, $scale = 1.0, $size = null) f f($dfnum, $dfden, $size = null) noncentralF noncentralF($dfnum, $dfden, $nonc, $size = null) chisquare chisquare($df, $size = null) noncentralChisquare noncentralChisquare($df, $nonc, $size = null) standardCauchy standardCauchy($size = null) standardT standardT($df, $size = null) vonmises vonmises($mu, $kappa, $size = null) pareto pareto($a, $size = null) weibull weibull($a, $size = null) power power($a, $size = null) laplace laplace($loc = 0.0, $scale = 1.0, $size = null) gumbel gumbel($loc = 0.0, $scale = 1.0, $size = null) logistic logistic($loc = 0.0, $scale = 1.0, $size = null) lognormal lognormal($mean = 0.0, $sigma = 1.0, $size = null) rayleigh rayleigh($scale = 1.0, $size = null) wald wald($mean, $scale, $size = null) triangular triangular($left, $mode, $right, $"},{"type":"API","title":"Np","url":"http:\/\/tessero.org\/docs\/api\/tessero-np","section":"Tessero","text":"Tessero\\Np apply apply(string $name, mixed ...$args): mixed allclose allclose(mixed $a, mixed $b, mixed $rtol = 1.0E-5, mixed $atol = 1.0E-8, mixed $equalNan = false): mixed append append(mixed $arr, mixed $values, mixed $axis = null): mixed argpartition argpartition(mixed $a, mixed $kth, ?int $axis = -1): Tessero\\NDArray|int|float argwhere argwhere(mixed $a): mixed around around(mixed $a, mixed $decimals = 0): mixed arrayEqual arrayEqual(mixed $a1, mixed $a2, mixed $equalNan = false): mixed arrayEquiv arrayEquiv(mixed $a1, mixed $a2): mixed arraySplit arraySplit(mixed $ary, mixed $indicesOrSections, mixed $axis = 0): mixed asarrayChkfinite asarrayChkfinite(mixed $a, mixed $dtype = null, mixed $order = null): mixed ascontiguousarray ascontiguousarray(mixed $a, mixed $dtype = null): mixed asfortranarray asfortranarray(mixed $a, mixed $dtype = null): mixed atleast1d atleast1d(mixed ...$arys): mixed atleast2d atleast2d(mixed ...$arys): mixed atleast3d atleast3d(mixed ...$arys): mixed average average(mixed $a, mixed $weights = null, array|int|null $axis = null, bool $keepdims = false): Tessero\\NDArray|int|float bartlett bartlett(mixed $M): mixed bincount bincount(mixed $x, mixed $weights = null, mixed $minlength = 0): mixed bitwiseAnd bitwiseAnd(mixed $x1, mixed $x2): mixed bitwiseCount bitwiseCount(mixed $x): mixed bitwiseOr bitwiseOr(mixed $x1, mixed $x2): mixed bitwiseXor bitwiseXor(mixed $x1, mixed $x2): mixed blackman blackman(mixed $M): mixed broadcastArrays broadcastArrays(mixed ...$args): mixed broadcastShapes broadcastShapes(mixed ...$args): mixed broadcastTo broadcastTo(mixed $array, mixed $shape): mixed canCast canCast(mixed $from_, mixed $to, mixed $casting = 'safe'): mixed choose choose(mixed $a, mixed $choices, mixed $mode = 'raise'): mixed columnStack columnStack(mixed $tup): mixed compress compress(mixed $condition, mixed $a, mixed $axis = null): mixed concat concat(mixed $arrays, mixed $axis = 0, mixed $dtype = null, mixed $casting = 'same_kind'): mixed"},{"type":"API","title":"Special","url":"http:\/\/tessero.org\/docs\/api\/tessero-special","section":"Tessero","text":"Tessero\\Special apply apply(string $name, mixed ...$args): mixed agm agm(mixed $a, mixed $b, ?Tessero\\NDArray $out = null): Tessero\\NDArray|float aiZeros aiZeros(mixed $nt): mixed airy airy(mixed $z, ?array $out = null): array airye airye(mixed $z, ?array $out = null): array assocLaguerre assocLaguerre(mixed $x, mixed $n, mixed $k, ?Tessero\\NDArray $out = null): Tessero\\NDArray|float bdtr bdtr(mixed $k, mixed $n, mixed $p, ?Tessero\\NDArray $out = null): Tessero\\NDArray|float bdtrc bdtrc(mixed $k, mixed $n, mixed $p, ?Tessero\\NDArray $out = null): Tessero\\NDArray|float bdtri bdtri(mixed $k, mixed $n, mixed $y, ?Tessero\\NDArray $out = null): Tessero\\NDArray|float bdtrik bdtrik(mixed $y, mixed $n, mixed $p, ?Tessero\\NDArray $out = null): Tessero\\NDArray|float bdtrin bdtrin(mixed $k, mixed $y, mixed $p, ?Tessero\\NDArray $out = null): Tessero\\NDArray|float bei bei(mixed $x, ?Tessero\\NDArray $out = null): Tessero\\NDArray|float beiZeros beiZeros(mixed $nt): mixed beip beip(mixed $x, ?Tessero\\NDArray $out = null): Tessero\\NDArray|float beipZeros beipZeros(mixed $nt): mixed ber ber(mixed $x, ?Tessero\\NDArray $out = null): Tessero\\NDArray|float berZeros berZeros(mixed $nt): mixed bernoulli bernoulli(mixed $n): mixed berp berp(mixed $x, ?Tessero\\NDArray $out = null): Tessero\\NDArray|float berpZeros berpZeros(mixed $nt): mixed besselpoly besselpoly(mixed $a, mixed $lmb, mixed $nu, ?Tessero\\NDArray $out = null): Tessero\\NDArray|float beta beta(mixed $a, mixed $b, ?Tessero\\NDArray $out = null): Tessero\\NDArray|float betainc betainc(mixed $a, mixed $b, mixed $x, ?Tessero\\NDArray $out = null): Tessero\\NDArray|float betaincc betaincc(mixed $a, mixed $b, mixed $x, ?Tessero\\NDArray $out = null): Tessero\\NDArray|float betainccinv betainccinv(mixed $a, mixed $b, mixed $y, ?Tessero\\NDArray $out = null): Tessero\\NDArray|float betaincinv betaincinv(mixed $a, mixed $b, mixed $y, ?Tessero\\NDArray $out = null): Tessero\\NDArray|float betaln betaln(mixed $a, mixed $b, ?Tessero\\NDArray $out = nu"},{"type":"API","title":"Stats","url":"http:\/\/tessero.org\/docs\/api\/tessero-stats","section":"Tessero","text":"Tessero\\Stats apply apply(string $name, mixed ...$args): mixed alexandergovern alexandergovern(mixed $sample1, mixed $sample2, mixed $sample3 = null, mixed $sample4 = null, mixed $sample5 = null, mixed $sample6 = null, mixed $sample7 = null, mixed $sample8 = null, mixed $sample9 = null, mixed $sample10 = null, mixed $nanPolicy = 'propagate', mixed $axis = 0, mixed $keepdims = false): mixed alpha alpha(mixed $a, mixed $loc = 0, mixed $scale = 1): Tessero\\Stats\\Distribution anderson anderson(mixed $x, mixed $dist = 'norm', mixed $method = null): mixed andersonKsamp andersonKsamp(mixed $samples, mixed $midrank = null, mixed $variant = null, mixed $method = null): mixed anglit anglit(mixed $loc = 0, mixed $scale = 1): Tessero\\Stats\\Distribution ansari ansari(mixed $x, mixed $y, mixed $alternative = 'two-sided', mixed $axis = 0, mixed $nanPolicy = 'propagate', mixed $keepdims = false): mixed arcsine arcsine(mixed $loc = 0, mixed $scale = 1): Tessero\\Stats\\Distribution argus argus(mixed $chi, mixed $loc = 0, mixed $scale = 1): Tessero\\Stats\\Distribution bartlett bartlett(mixed $sample1, mixed $sample2 = null, mixed $sample3 = null, mixed $sample4 = null, mixed $sample5 = null, mixed $sample6 = null, mixed $sample7 = null, mixed $sample8 = null, mixed $sample9 = null, mixed $sample10 = null, mixed $sample11 = null, mixed $sample12 = null, mixed $axis = 0, mixed $nanPolicy = 'propagate', mixed $keepdims = false): mixed bernoulli bernoulli(mixed $p, mixed $loc = 0): Tessero\\Stats\\Distribution beta beta(mixed $a, mixed $b, mixed $loc = 0, mixed $scale = 1): Tessero\\Stats\\Distribution betabinom betabinom(mixed $n, mixed $a, mixed $b, mixed $loc = 0): Tessero\\Stats\\Distribution betanbinom betanbinom(mixed $n, mixed $a, mixed $b, mixed $loc = 0): Tessero\\Stats\\Distribution betaprime betaprime(mixed $a, mixed $b, mixed $loc = 0, mixed $scale = 1): Tessero\\Stats\\Distribution binnedStatistic binnedStatistic(mixed $x, mixed $values, mixed $statistic = 'mean', mixed $bins = 10, mixed"},{"type":"API","title":"Distribution","url":"http:\/\/tessero.org\/docs\/api\/tessero-stats-distribution","section":"Tessero\\Stats","text":"Tessero\\Stats\\Distribution __construct __construct(string $name, array $params) name name(): string args args(): array pdf pdf(mixed $x): Tessero\\NDArray|float logpdf logpdf(mixed $x): Tessero\\NDArray|float pmf pmf(mixed $k): Tessero\\NDArray|float logpmf logpmf(mixed $k): Tessero\\NDArray|float cdf cdf(mixed $x): Tessero\\NDArray|float logcdf logcdf(mixed $x): Tessero\\NDArray|float sf sf(mixed $x): Tessero\\NDArray|float logsf logsf(mixed $x): Tessero\\NDArray|float ppf ppf(mixed $q): Tessero\\NDArray|float isf isf(mixed $q): Tessero\\NDArray|float stats stats(string $moments = 'mv'): Tessero\\NDArray|array|float mean mean(): Tessero\\NDArray|float var var(): Tessero\\NDArray|float std std(): Tessero\\NDArray|float median median(): Tessero\\NDArray|float entropy entropy(): Tessero\\NDArray|float moment moment(int $order): Tessero\\NDArray|float support support(): array interval interval(float $confidence): array rvs rvs(array|int|null $size = null, ?Tessero\\Random\\Generator $randomState = null): Tessero\\NDArray|int|float"},{"type":"API","title":"Np","url":"http:\/\/tessero.org\/docs\/api\/tessero-ext-np","section":"Tessero\\Ext","text":"Tessero\\Ext\\Np median median($a, $axis = null, $keepdims = false) nanmedian nanmedian($a, $axis = null, $keepdims = false) quantile quantile($a, $q, $axis = null, $method = 'linear', $keepdims = false) percentile percentile($a, $q, $axis = null, $method = 'linear', $keepdims = false) nanquantile nanquantile($a, $q, $axis = null, $method = 'linear', $keepdims = false) nanpercentile nanpercentile($a, $q, $axis = null, $method = 'linear', $keepdims = false) ptp ptp($a, $axis = null, $keepdims = false) countNonzero countNonzero($a, $axis = null, $keepdims = false) nansum nansum($a, $axis = null, $keepdims = false) nanprod nanprod($a, $axis = null, $keepdims = false) nanmin nanmin($a, $axis = null, $keepdims = false) nanmax nanmax($a, $axis = null, $keepdims = false) nanargmin nanargmin($a, $axis = null, $keepdims = false) nanargmax nanargmax($a, $axis = null, $keepdims = false) nanmean nanmean($a, $axis = null, $keepdims = false) nanvar nanvar($a, $axis = null, $ddof = 0, $keepdims = false) nanstd nanstd($a, $axis = null, $ddof = 0, $keepdims = false) nancumsum nancumsum($a, $axis = null) nancumprod nancumprod($a, $axis = null) cumulativeSum cumulativeSum($x, $axis = null, $includeInitial = false) cumulativeProd cumulativeProd($x, $axis = null, $includeInitial = false) average average($a, $weights = null, $axis = null, $keepdims = false) searchsorted searchsorted($a, $v, $side = 'left') digitize digitize($x, $bins, $right = false) isin isin($element, $testElements, $invert = false) partition partition($a, $kth, $axis = -1) argpartition argpartition($a, $kth, $axis = -1) unique unique($ar, $returnIndex = false, $returnInverse = false, $returnCounts = false, $equalNan = true) uniqueValues uniqueValues($x) uniqueCounts uniqueCounts($x) uniqueInverse uniqueInverse($x) uniqueAll uniqueAll($x) intersect1d intersect1d($ar1, $ar2, $assumeUnique = false, $returnIndices = false) union1d union1d($ar1, $ar2) setdiff1d setdiff1d($ar1, $ar2, $assumeUnique = false) setxor1d setxor1d($"},{"type":"API","title":"Special","url":"http:\/\/tessero.org\/docs\/api\/tessero-ext-special","section":"Tessero\\Ext","text":"Tessero\\Ext\\Special agm agm($a, $b, $out = null) airy airy($z, $out = null) airye airye($z, $out = null) bdtr bdtr($k, $n, $p, $out = null) bdtrc bdtrc($k, $n, $p, $out = null) bdtri bdtri($k, $n, $y, $out = null) bdtrik bdtrik($y, $n, $p, $out = null) bdtrin bdtrin($k, $y, $p, $out = null) bei bei($x, $out = null) beip beip($x, $out = null) ber ber($x, $out = null) berp berp($x, $out = null) besselpoly besselpoly($a, $lmb, $nu, $out = null) beta beta($a, $b, $out = null) betainc betainc($a, $b, $x, $out = null) betaincc betaincc($a, $b, $x, $out = null) betainccinv betainccinv($a, $b, $y, $out = null) betaincinv betaincinv($a, $b, $y, $out = null) betaln betaln($a, $b, $out = null) binom binom($x, $y, $out = null) comb comb($N, $k, $out = null) factorial factorial($n, $out = null) polygamma polygamma($n, $x, $out = null) boxcox boxcox($x, $lmbda, $out = null) boxcox1p boxcox1p($x, $lmbda, $out = null) btdtria btdtria($p, $b, $x, $out = null) btdtrib btdtrib($x0, $x1, $x2, $out = null) cbrt cbrt($x, $out = null) chdtr chdtr($v, $x, $out = null) chdtrc chdtrc($v, $x, $out = null) chdtri chdtri($v, $p, $out = null) chdtriv chdtriv($p, $x, $out = null) chndtr chndtr($x, $df, $nc, $out = null) chndtridf chndtridf($x, $p, $nc, $out = null) chndtrinc chndtrinc($x, $df, $p, $out = null) chndtrix chndtrix($p, $df, $nc, $out = null) cosdg cosdg($x, $out = null) cosm1 cosm1($x, $out = null) cotdg cotdg($x, $out = null) dawsn dawsn($x, $out = null) digamma digamma($z, $out = null) ellipe ellipe($m, $out = null) ellipeinc ellipeinc($phi, $m, $out = null) ellipj ellipj($u, $m, $out = null) ellipk ellipk($m, $out = null) ellipkinc ellipkinc($phi, $m, $out = null) ellipkm1 ellipkm1($p, $out = null) elliprc elliprc($x, $y, $out = null) elliprd elliprd($x, $y, $z, $out = null) elliprf elliprf($x, $y, $z, $out = null) elliprg elliprg($x, $y, $z, $out = null) elliprj elliprj($x, $y, $z, $p, $out = null) entr entr($x, $out = null) erf erf($z, $out = null) erfc erfc($x, $out = null) erf"},{"type":"API","title":"Stats","url":"http:\/\/tessero.org\/docs\/api\/tessero-ext-stats","section":"Tessero\\Ext","text":"Tessero\\Ext\\Stats gmean gmean($a, $weights = null, $axis = 0, $nanPolicy = 'propagate', $keepdims = false) hmean hmean($a, $weights = null, $axis = 0, $nanPolicy = 'propagate', $keepdims = false) pmean pmean($a, $p, $weights = null, $axis = 0, $nanPolicy = 'propagate', $keepdims = false) kurtosis kurtosis($a, $axis = 0, $fisher = true, $bias = true, $nanPolicy = 'propagate', $keepdims = false) skew skew($a, $axis = 0, $bias = true, $nanPolicy = 'propagate', $keepdims = false) moment moment($a, $order = 1, $axis = 0, $nanPolicy = 'propagate', $center = null, $keepdims = false) variation variation($a, $axis = 0, $nanPolicy = 'propagate', $ddof = 0, $keepdims = false) sem sem($a, $axis = 0, $ddof = 1, $nanPolicy = 'propagate', $keepdims = false) zscore zscore($a, $axis = 0, $ddof = 0, $nanPolicy = 'propagate') zmap zmap($scores, $compare, $axis = 0, $ddof = 0, $nanPolicy = 'propagate') gzscore gzscore($a, $axis = 0, $ddof = 0, $nanPolicy = 'propagate') gstd gstd($a, $axis = 0, $ddof = 1, $nanPolicy = 'propagate', $keepdims = false) trimMean trimMean($a, $proportiontocut, $axis = 0, $nanPolicy = 'propagate', $keepdims = false) kstat kstat($data, $n = 2, $axis = null, $nanPolicy = 'propagate', $keepdims = false) kstatvar kstatvar($data, $n = 2, $axis = null, $nanPolicy = 'propagate', $keepdims = false) circmean circmean($samples, $high = 6.283185307179586, $low = 0, $axis = null, $nanPolicy = 'propagate', $keepdims = false) circvar circvar($samples, $high = 6.283185307179586, $low = 0, $axis = null, $nanPolicy = 'propagate', $keepdims = false) circstd circstd($samples, $high = 6.283185307179586, $low = 0, $axis = null, $nanPolicy = 'propagate', $normalize = false, $keepdims = false) entropy entropy($pk, $qk = null, $axis = 0, $base = null, $nanPolicy = 'propagate', $keepdims = false) differentialEntropy differentialEntropy($values, $axis = 0, $windowLength = null, $base = null, $method = 'auto', $nanPolicy = 'propagate', $keepdims = false) falseDiscoveryControl falseDisc"},{"type":"API","title":"Distribution","url":"http:\/\/tessero.org\/docs\/api\/tessero-ext-distribution","section":"Tessero\\Ext","text":"Tessero\\Ext\\Distribution pdf pdf($x) logpdf logpdf($x) pmf pmf($x) logpmf logpmf($x) cdf cdf($x) logcdf logcdf($x) sf sf($x) logsf logsf($x) ppf ppf($q) isf isf($q) stats stats(string $moments = 'mv') mean mean() var var() std std() entropy entropy() moment moment(int $order) rvs rvs($size = null, $randomState = null) support support() median median() interval interval(float $confidence) name name() args args()"},{"type":"API","title":"Fft","url":"http:\/\/tessero.org\/docs\/api\/tessero-ext-fft-fft","section":"Tessero\\Ext\\Fft","text":"Tessero\\Ext\\Fft\\Fft fft fft(mixed $a, ?int $n = null, int $axis = -1, string $norm = 'backward'): Tessero\\Ext\\NDArray ifft ifft(mixed $a, ?int $n = null, int $axis = -1, string $norm = 'backward'): Tessero\\Ext\\NDArray rfft rfft(mixed $a, ?int $n = null, int $axis = -1, string $norm = 'backward'): Tessero\\Ext\\NDArray irfft irfft(mixed $a, ?int $n = null, int $axis = -1, string $norm = 'backward'): Tessero\\Ext\\NDArray fft2 fft2(mixed $a, string $norm = 'backward'): Tessero\\Ext\\NDArray ifft2 ifft2(mixed $a, string $norm = 'backward'): Tessero\\Ext\\NDArray fftn fftn(mixed $a, ?array $s = null, ?array $axes = null, string $norm = 'backward'): Tessero\\Ext\\NDArray ifftn ifftn(mixed $a, ?array $s = null, ?array $axes = null, string $norm = 'backward'): Tessero\\Ext\\NDArray rfftn rfftn(mixed $a, ?array $s = null, ?array $axes = null, string $norm = 'backward'): Tessero\\Ext\\NDArray rfft2 rfft2(mixed $a, ?array $s = null, ?array $axes = null, string $norm = 'backward'): Tessero\\Ext\\NDArray irfftn irfftn(mixed $a, ?array $s = null, ?array $axes = null, string $norm = 'backward'): Tessero\\Ext\\NDArray irfft2 irfft2(mixed $a, ?array $s = null, ?array $axes = null, string $norm = 'backward'): Tessero\\Ext\\NDArray hfft hfft(mixed $a, ?int $n = null, int $axis = -1, string $norm = 'backward'): Tessero\\Ext\\NDArray ihfft ihfft(mixed $a, ?int $n = null, int $axis = -1, string $norm = 'backward'): Tessero\\Ext\\NDArray hfftn hfftn(mixed $a, ?array $s = null, ?array $axes = null, string $norm = 'backward'): Tessero\\Ext\\NDArray hfft2 hfft2(mixed $a, ?array $s = null, ?array $axes = null, string $norm = 'backward'): Tessero\\Ext\\NDArray ihfftn ihfftn(mixed $a, ?array $s = null, ?array $axes = null, string $norm = 'backward'): Tessero\\Ext\\NDArray ihfft2 ihfft2(mixed $a, ?array $s = null, ?array $axes = null, string $norm = 'backward'): Tessero\\Ext\\NDArray nextFastLen nextFastLen(int $target, bool $real = false): int prevFastLen prevFastLen(int $target, bool $real = false): int fftfreq fftfreq(int"},{"type":"API","title":"Linalg","url":"http:\/\/tessero.org\/docs\/api\/tessero-ext-linalg","section":"Tessero\\Ext","text":"Tessero\\Ext\\Linalg qrComplex qrComplex($a) matmul matmul($x1, $x2) vectorNorm vectorNorm($x, $axis = null, $keepdims = false, $ord = 2) matrixNorm matrixNorm($x, $keepdims = false, $ord = 'fro') trace trace($x, $offset = 0) diagonal diagonal($x, $offset = 0) tensordot tensordot($x1, $x2, $axes = 2) outer outer($x1, $x2) cross cross($x1, $x2, $axis = -1) vecdot vecdot($x1, $x2, $axis = -1) tensorsolve tensorsolve($a, $b, $axes = null) tensorinv tensorinv($a, $ind = 2) matrixPower matrixPower($a, $n) matrixTranspose matrixTranspose($x) multiDot multiDot(...$arrays) svdvals svdvals($a) matrixRank matrixRank($A, $tol = null, $hermitian = false) cond cond($x, $p = null) pinv pinv($a, $rcond = 1.0E-15) eigvalsh eigvalsh($a, $UPLO = 'L') lstsq lstsq($a, $b, $rcond = null) norm norm($x, $ord = null, $axis = null, $keepdims = false) eigh eigh($a, $UPLO = 'L') svd svd($a, $fullMatrices = true) qr qr($a, $mode = 'reduced') eigvals eigvals($a) eig eig($a) solve solve($a, $b) inv inv($a) det det($a) slogdet slogdet($a) cholesky cholesky($a, $upper = false)"},{"type":"API","title":"ScipyLinalg","url":"http:\/\/tessero.org\/docs\/api\/tessero-ext-scipylinalg","section":"Tessero\\Ext","text":"Tessero\\Ext\\ScipyLinalg solve solve($a, $b) inv inv($a) det det($a) svdvals svdvals($a) lstsq lstsq($a, $b, $cond = null) pinv pinv($a) pinvh pinvh($a) norm norm($a, $ord = null, $axis = null, $keepdims = false) eigvalsh eigvalsh($a) svd svd($a, $fullMatrices = true) eigh eigh($a) qr qr($a, $mode = 'full') cholesky cholesky($a, $lower = false) choFactor choFactor($a, $lower = false) choSolve choSolve($c, $lower, $b) solveTriangular solveTriangular($a, $b, $trans = 0, $lower = false, $unitDiagonal = false) lu lu($a, $permuteL = false) toeplitz toeplitz($c, $r = null) blockDiag blockDiag(...$arrs) circulant circulant($c) companion companion($a) hadamard hadamard($n) hilbert hilbert($n) hankel hankel($c, $r = null) fiedler fiedler($a) leslie leslie($f, $s) pascal pascal($n, $kind = 'symmetric') invpascal invpascal($n, $kind = 'symmetric') convolutionMatrix convolutionMatrix($a, $n, $mode = 'full') dft dft($n, $scale = null) khatriRao khatriRao($a, $b) diagsvd diagsvd($s, $M, $N) orth orth($A, $rcond = null) nullSpace nullSpace($A, $rcond = null) polar polar($a, $side = 'right') luFactor luFactor($a) luSolve luSolve($lu, $piv, $b, $trans = 0) hessenberg hessenberg($a, $calcQ = false) schur schur($a, $output = 'real') solveSylvester solveSylvester($a, $b, $q) solveContinuousLyapunov solveContinuousLyapunov($a, $q) eigvalshTridiagonal eigvalshTridiagonal($d, $e) issymmetric issymmetric($a, $atol = null, $rtol = null) ishermitian ishermitian($a, $atol = null, $rtol = null) solveToeplitz solveToeplitz($cOrCr, $b) solveCirculant solveCirculant($c, $b) matmulToeplitz matmulToeplitz($cOrCr, $x) invhilbert invhilbert($n) eighTridiagonal eighTridiagonal($d, $e) eigvalsBanded eigvalsBanded($aBand, $lower = false) choleskyBanded choleskyBanded($ab, $lower = false) solveDiscreteLyapunov solveDiscreteLyapunov($a, $q) helmert helmert($n, $full = false) choSolveBanded choSolveBanded($cb, $lower, $b) rq rq($a, $mode = 'full') orthogonalProcrustes orthogonalProcrustes($A, $B) matrixBala"},{"type":"API","title":"Signal","url":"http:\/\/tessero.org\/docs\/api\/tessero-ext-signal","section":"Tessero\\Ext","text":"Tessero\\Ext\\Signal findPeaks findPeaks($x, $height = null, $threshold = null, $distance = null, $prominence = null, $width = null, $wlen = null, $relHeight = 0.5, $plateauSize = null) minimumPhase minimumPhase($h, $method = 'homomorphic', $nFft = null, $half = true) decimate decimate($x, $q, $n = null, $ftype = 'iir', $axis = -1, $zeroPhase = true) stft stft($x, $fs = 1.0, $window = 'hann', $nperseg = 256, $noverlap = null, $nfft = null, $detrend = false, $returnOnesided = true, $boundary = 'zeros', $padded = true, $axis = -1, $scaling = 'spectrum') iirfilter iirfilter($N, $Wn, $rp = null, $rs = null, $btype = 'band', $analog = false, $ftype = 'butter', $output = 'ba', $fs = null) iirdesign iirdesign($wp, $ws, $gpass, $gstop, $analog = false, $ftype = 'ellip', $output = 'ba', $fs = null) envelope envelope($z, $bpLo = 1, $bpHi = null, $nOut = null, $squared = false, $residual = 'lowpass') firwin2d firwin2d($hsize, $window, $fc = null, $fs = 2, $circular = false, $passZero = true, $scale = true) istft istft($Zxx, $fs = 1.0, $window = 'hann', $nperseg = null, $noverlap = null, $nfft = null, $inputOnesided = true, $boundary = true, $timeAxis = -1, $freqAxis = -2, $scaling = 'spectrum') convolve convolve($a, $v, $mode = 'full') lfilter lfilter($b, $a, $x) sosfilt sosfilt($sos, $x, $axis = -1, $zi = null) lfilterZi lfilterZi($b, $a) filtfilt filtfilt($b, $a, $x, $axis = -1, $padtype = 'odd', $padlen = null, $method = 'pad', $irlen = null) sosfiltZi sosfiltZi($sos) sosfiltfilt sosfiltfilt($sos, $x, $axis = -1, $padtype = 'odd', $padlen = null) freqz freqz($b, $a = 1, $worN = 512, $whole = false) zpk2tf zpk2tf($z, $p, $k) zpk2sos zpk2sos($z, $p, $k, $pairing = null, $analog = false) tf2sos tf2sos($b, $a, $pairing = null, $analog = false) butter butter($N, $Wn, $btype = 'low', $analog = false, $output = 'ba', $fs = null) cheby1 cheby1($N, $rp, $Wn, $btype = 'low', $analog = false, $output = 'ba', $fs = null) cheby2 cheby2($N, $rs, $Wn, $btype = 'low', $analog = false, $outpu"},{"type":"API","title":"SignalWindows","url":"http:\/\/tessero.org\/docs\/api\/tessero-ext-signalwindows","section":"Tessero\\Ext","text":"Tessero\\Ext\\SignalWindows generalCosine generalCosine($M, $a, $sym = true) generalHamming generalHamming($M, $alpha, $sym = true) hann hann($M, $sym = true) hamming hamming($M, $sym = true) blackman blackman($M, $sym = true) blackmanharris blackmanharris($M, $sym = true) nuttall nuttall($M, $sym = true) flattop flattop($M, $sym = true) boxcar boxcar($M, $sym = true) triang triang($M, $sym = true) bartlett bartlett($M, $sym = true) cosine cosine($M, $sym = true) lanczos lanczos($M, $sym = true) bohman bohman($M, $sym = true) barthann barthann($M, $sym = true) parzen parzen($M, $sym = true) kaiser kaiser($M, $beta, $sym = true) kaiserBesselDerived kaiserBesselDerived($M, $beta, $sym = true) taylor taylor($M, $nbar = 4, $sll = 30, $norm = true, $sym = true) chebwin chebwin($M, $at, $sym = true) gaussian gaussian($M, $std, $sym = true) generalGaussian generalGaussian($M, $p, $sig, $sym = true) exponential exponential($M, $center = null, $tau = 1.0, $sym = true) tukey tukey($M, $alpha = 0.5, $sym = true) dpss dpss($M, $NW, $Kmax = null, $sym = true, $norm = null)"},{"type":"API","title":"Distance","url":"http:\/\/tessero.org\/docs\/api\/tessero-ext-distance","section":"Tessero\\Ext","text":"Tessero\\Ext\\Distance procrustes procrustes($data1, $data2) distanceMatrix distanceMatrix($x, $y, $p = 2, $threshold = 1000000) minkowskiDistance minkowskiDistance($x, $y, $p = 2) minkowskiDistanceP minkowskiDistanceP($x, $y, $p = 2) geometricSlerp geometricSlerp($start, $end, $t) pdist pdist($X, $metric = null, $p = null) cdist cdist($XA, $XB, $metric = null, $p = null) squareform squareform($X) euclidean euclidean($u, $v, $w = null) sqeuclidean sqeuclidean($u, $v, $w = null) cityblock cityblock($u, $v, $w = null) chebyshev chebyshev($u, $v, $w = null) cosine cosine($u, $v, $w = null) correlation correlation($u, $v, $w = null, $centered = true) hamming hamming($u, $v, $w = null) braycurtis braycurtis($u, $v, $w = null) canberra canberra($u, $v, $w = null) minkowski minkowski($u, $v, $p = 2, $w = null) dice dice($u, $v, $w = null) jaccard jaccard($u, $v, $w = null) rogerstanimoto rogerstanimoto($u, $v, $w = null) russellrao russellrao($u, $v, $w = null) sokalsneath sokalsneath($u, $v, $w = null) yule yule($u, $v, $w = null) mahalanobis mahalanobis($u, $v, $VI) seuclidean seuclidean($u, $v, $V) jensenshannon jensenshannon($p, $q, $base = null) numObsDm numObsDm($d) numObsY numObsY($Y) isValidDm isValidDm($D, $tol = 0.0, $throw = false, $name = 'D', $warning = false) isValidY isValidY($y, $warning = false, $throw = false, $name = null)"},{"type":"API","title":"Ndimage","url":"http:\/\/tessero.org\/docs\/api\/tessero-ext-ndimage","section":"Tessero\\Ext","text":"Tessero\\Ext\\Ndimage generateBinaryStructure generateBinaryStructure($rank, $connectivity) watershedIft watershedIft($input, $markers, $structure = null) gaussianFilter gaussianFilter($input, $sigma, $order = 0, $mode = 'reflect', $cval = 0.0, $truncate = 4.0, $radius = null) uniformFilter uniformFilter($input, $size = 3, $mode = 'reflect', $cval = 0.0, $origin = 0) correlate1d correlate1d($input, $weights, $axis = -1, $mode = 'reflect', $cval = 0.0, $origin = 0) convolve1d convolve1d($input, $weights, $axis = -1, $mode = 'reflect', $cval = 0.0, $origin = 0) uniformFilter1d uniformFilter1d($input, $size, $axis = -1, $mode = 'reflect', $cval = 0.0, $origin = 0) gaussianFilter1d gaussianFilter1d($input, $sigma, $axis = -1, $order = 0, $mode = 'reflect', $cval = 0.0, $truncate = 4.0, $radius = null) minimumFilter1d minimumFilter1d($input, $size, $axis = -1, $mode = 'reflect', $cval = 0.0, $origin = 0) maximumFilter1d maximumFilter1d($input, $size, $axis = -1, $mode = 'reflect', $cval = 0.0, $origin = 0) binaryDilation binaryDilation($input, $structure = null) binaryErosion binaryErosion($input, $structure = null) binaryOpening binaryOpening($input, $structure = null) binaryClosing binaryClosing($input, $structure = null) binaryHitOrMiss binaryHitOrMiss($input, $structure1 = null, $structure2 = null) iterateStructure iterateStructure($structure, $iterations) binaryPropagation binaryPropagation($input, $structure = null, $mask = null) binaryFillHoles binaryFillHoles($input, $structure = null) maximumFilter maximumFilter($input, $size = null, $mode = 'reflect', $cval = 0.0, $origin = 0) minimumFilter minimumFilter($input, $size = null, $mode = 'reflect', $cval = 0.0, $origin = 0) medianFilter medianFilter($input, $size = null, $mode = 'reflect', $cval = 0.0, $origin = 0) rankFilter rankFilter($input, $rank, $size = null, $mode = 'reflect', $cval = 0.0, $origin = 0) percentileFilter percentileFilter($input, $percentile, $size = null, $mode = 'reflect', $cval = 0.0, $origin"},{"type":"API","title":"Csgraph","url":"http:\/\/tessero.org\/docs\/api\/tessero-ext-csgraph","section":"Tessero\\Ext","text":"Tessero\\Ext\\Csgraph maximumFlow maximumFlow($csgraph, $source, $sink, $method = 'dinic') reverseCuthillMckee reverseCuthillMckee($graph, $symmetricMode = false) maximumBipartiteMatching maximumBipartiteMatching($graph, $permType = 'row') yen yen($csgraph, $source, $sink, $K, $directed = true) csgraphToDense csgraphToDense($data, $indices, $indptr, $nNodes, $nullValue = 0) csgraphFromDense csgraphFromDense($graph, $nullValue = 0, $nanNull = true, $infinityNull = true) connectedComponents connectedComponents($csgraph, $directed = true, $connection = 'weak') shortestPath shortestPath($csgraph, $method = 'auto', $directed = true, $returnPredecessors = false, $unweighted = false, $overwrite = false, $indices = null) dijkstra dijkstra($csgraph, $directed = true, $indices = null, $returnPredecessors = false, $unweighted = false) bellmanFord bellmanFord($csgraph, $directed = true, $indices = null, $returnPredecessors = false, $unweighted = false) johnson johnson($csgraph, $directed = true, $indices = null, $returnPredecessors = false, $unweighted = false) floydWarshall floydWarshall($csgraph, $directed = true, $returnPredecessors = false, $unweighted = false, $overwrite = false) laplacian laplacian($csgraph, $normed = false) breadthFirstOrder breadthFirstOrder($csgraph, $iStart, $directed = true, $returnPredecessors = true) depthFirstOrder depthFirstOrder($csgraph, $iStart, $directed = true, $returnPredecessors = true) structuralRank structuralRank($graph) minimumSpanningTree minimumSpanningTree($csgraph, $overwrite = false) reconstructPath reconstructPath($csgraph, $predecessors, $directed = true) constructDistMatrix constructDistMatrix($graph, $predecessors, $directed = true) minWeightFullBipartiteMatching minWeightFullBipartiteMatching($biadjacencyMatrix, $maximize = false) breadthFirstTree breadthFirstTree($csgraph, $iStart, $directed = true) depthFirstTree depthFirstTree($csgraph, $iStart, $directed = true)"},{"type":"API","title":"Interpolate","url":"http:\/\/tessero.org\/docs\/api\/tessero-ext-interpolate","section":"Tessero\\Ext","text":"Tessero\\Ext\\Interpolate pchipInterpolate pchipInterpolate($xi, $yi, $x) PchipInterpolator PchipInterpolator($x, $y, $xnew) Akima1DInterpolator Akima1DInterpolator($x, $y, $xnew) CubicSpline CubicSpline($x, $y, $xnew) CubicHermiteSpline CubicHermiteSpline($x, $y, $dydx, $xnew) barycentricInterpolate barycentricInterpolate($xi, $yi, $x) kroghInterpolate kroghInterpolate($xi, $yi, $x) BSpline BSpline($t, $c, $k, $x) pade pade($an, $m, $n = null) makeInterpSpline makeInterpSpline($x, $y, $k, $xnew) splev splev($t, $c, $k, $x) splder splder($t, $c, $k, $n = 1) splantider splantider($t, $c, $k, $n = 1) splint splint($a, $b, $t, $c, $k) sproot sproot($t, $c, $k, $mest = 10) lagrange lagrange($x, $w) RegularGridInterpolator RegularGridInterpolator($points, $values, $xi) interpn interpn($points, $values, $xi) RBFInterpolator RBFInterpolator($y, $d, $xi, $kernel = 'thin_plate_spline') makeLsqSpline makeLsqSpline($x, $y, $t, $k, $xnew) BarycentricInterpolator BarycentricInterpolator($xi, $yi, $x) KroghInterpolator KroghInterpolator($xi, $yi, $x) PPoly PPoly($c, $x, $xnew) BPoly BPoly($c, $x, $xnew) FloaterHormannInterpolator FloaterHormannInterpolator($xi, $yi, $x, $d = 3) insert insert($x, $t, $c, $k, $m = 1) spalde spalde($t, $c, $k, $x) NdPPoly NdPPoly($c, $xb, $yb, $xi) NdBSpline NdBSpline($tx, $ty, $c, $kx, $ky, $xi) splrep splrep($x, $y, $w, $k, $s) bisplrep bisplrep($x, $y, $z, $w, $kx, $ky, $s, $eps) spherfit spherfit($teta, $phi, $r, $w, $s, $eps) spherfitLsq spherfitLsq($teta, $phi, $r, $w, $tt, $tp, $eps) spgrid spgrid($u, $v, $r, $s)"},{"type":"API","title":"Cluster","url":"http:\/\/tessero.org\/docs\/api\/tessero-ext-cluster","section":"Tessero\\Ext","text":"Tessero\\Ext\\Cluster whiten whiten($obs) vq vq($obs, $codeBook) kmeans2 kmeans2($data, $k, $iter = 10, $thresh = 1.0E-5, $minit = 'matrix', $missing = 'warn') kmeans kmeans($obs, $kOrGuess, $iter = 20, $thresh = 1.0E-5)"},{"type":"API","title":"Polynomial","url":"http:\/\/tessero.org\/docs\/api\/tessero-ext-polynomial","section":"Tessero\\Ext","text":"Tessero\\Ext\\Polynomial polyval polyval($x, $c) chebval chebval($x, $c) legval legval($x, $c) lagval lagval($x, $c) hermval hermval($x, $c) hermeval hermeval($x, $c) Polynomial Polynomial($coef, $x) Chebyshev Chebyshev($coef, $x) Legendre Legendre($coef, $x) Laguerre Laguerre($coef, $x) Hermite Hermite($coef, $x) HermiteE HermiteE($coef, $x) polyadd polyadd($c1, $c2) polysub polysub($c1, $c2) polymul polymul($c1, $c2) polymulx polymulx($c) polypow polypow($c, $pow, $maxpower = 16) polydiv polydiv($c1, $c2) polyder polyder($c, $m = 1, $scl = 1) polyint polyint($c, $m = 1, $k = 0, $lbnd = 0, $scl = 1) polyfromroots polyfromroots($roots) polyline polyline($off, $scl) polytrim polytrim($c, $tol = 0) polyvander polyvander($x, $deg) polyvalfromroots polyvalfromroots($x, $r) polyval2d polyval2d($x, $y, $c) polyval3d polyval3d($x, $y, $z, $c) polygrid2d polygrid2d($x, $y, $c) polygrid3d polygrid3d($x, $y, $z, $c) polyvander2d polyvander2d($x, $y, $deg) polyvander3d polyvander3d($x, $y, $z, $deg) polycompanion polycompanion($c) polyroots polyroots($c) polyfit polyfit($x, $y, $deg) polyzero polyzero() polyone polyone() polyx polyx() polydomain polydomain() chebadd chebadd($c1, $c2) chebsub chebsub($c1, $c2) chebmul chebmul($c1, $c2) chebmulx chebmulx($c) chebpow chebpow($c, $pow, $maxpower = 16) chebdiv chebdiv($c1, $c2) chebder chebder($c, $m = 1, $scl = 1) chebint chebint($c, $m = 1, $k = 0, $lbnd = 0, $scl = 1) chebfromroots chebfromroots($roots) chebline chebline($off, $scl) chebtrim chebtrim($c, $tol = 0) chebvander chebvander($x, $deg) chebval2d chebval2d($x, $y, $c) chebval3d chebval3d($x, $y, $z, $c) chebgrid2d chebgrid2d($x, $y, $c) chebgrid3d chebgrid3d($x, $y, $z, $c) chebvander2d chebvander2d($x, $y, $deg) chebvander3d chebvander3d($x, $y, $z, $deg) chebcompanion chebcompanion($c) chebroots chebroots($c) chebfit chebfit($x, $y, $deg) cheb2poly cheb2poly($c) poly2cheb poly2cheb($pol) chebpts1 chebpts1($npts) chebpts2 chebpts2($npts) chebgauss chebgauss($deg) chebwei"},{"type":"API","title":"Hierarchy","url":"http:\/\/tessero.org\/docs\/api\/tessero-ext-hierarchy","section":"Tessero\\Ext","text":"Tessero\\Ext\\Hierarchy linkage linkage($y, $method = 'single') single single($y) complete complete($y) average average($y) weighted weighted($y) ward ward($y) centroid centroid($y) median median($y) numObsLinkage numObsLinkage($Z) isValidLinkage isValidLinkage($Z) isMonotonic isMonotonic($Z) isValidIm isValidIm($R) correspond correspond($Z, $Y) maxdists maxdists($Z) inconsistent inconsistent($Z, $d = 2) maxinconsts maxinconsts($Z, $R) maxRstat maxRstat($Z, $R, $i) leavesList leavesList($Z) cophenet cophenet($Z) toMlabLinkage toMlabLinkage($Z) fromMlabLinkage fromMlabLinkage($Z) fcluster fcluster($Z, $t, $criterion = 'inconsistent', $depth = 2, $R = null, $monocrit = null) fclusterdata fclusterdata($X, $t, $criterion = 'inconsistent', $metric = 'euclidean', $depth = 2, $method = 'single') leaders leaders($Z, $T) cutTree cutTree($Z, $nClusters = null, $height = null) isIsomorphic isIsomorphic($T1, $T2) optimalLeafOrdering optimalLeafOrdering($Z, $y, $metric = 'euclidean')"},{"type":"API","title":"SparseLinalg","url":"http:\/\/tessero.org\/docs\/api\/tessero-ext-sparselinalg","section":"Tessero\\Ext","text":"Tessero\\Ext\\SparseLinalg spsolve spsolve($A, $b, $permcSpec = null, $useUmfpack = true) spsolveTriangular spsolveTriangular($A, $b, $lower = true, $overwriteA = false, $overwriteB = false, $unitDiagonal = false) norm norm($x, $ord = null, $axis = null) spbandwidth spbandwidth($A) isSptriangular isSptriangular($A) inv inv($A) matrixPower matrixPower($A, $power) expm expm($A) expmMultiply expmMultiply($A, $B, $start = null, $stop = null, $num = null, $endpoint = null) cg cg($A, $b, $x0 = null, $rtol = 1.0E-5, $atol = 0.0, $maxiter = null) bicgstab bicgstab($A, $b, $x0 = null, $rtol = 1.0E-5, $atol = 0.0, $maxiter = null) bicg bicg($A, $b, $x0 = null, $rtol = 1.0E-5, $atol = 0.0, $maxiter = null) cgs cgs($A, $b, $x0 = null, $rtol = 1.0E-5, $atol = 0.0, $maxiter = null) gmres gmres($A, $b, $x0 = null, $rtol = 1.0E-5, $atol = 0.0, $maxiter = null, $restart = null) lgmres lgmres($A, $b, $x0 = null, $rtol = 1.0E-5, $atol = 0.0, $maxiter = null, $innerM = 30, $outerK = 3) gcrotmk gcrotmk($A, $b, $x0 = null, $rtol = 1.0E-5, $atol = 0.0, $maxiter = null, $m = 20, $k = null) minres minres($A, $b, $x0 = null, $rtol = 1.0E-5, $atol = 0.0, $maxiter = null) lsqr lsqr($A, $b, $atol = 1.0E-8, $btol = 1.0E-8, $maxiter = null) onenormest onenormest($A, $t = 2, $itmax = 5) eigsh eigsh($A, $k = 6, $which = \u2026, $sigma = null, $v0 = null, $ncv = null, $maxiter = null, $tol = 0.0, $returnEigenvectors = true) eigs eigs($A, $k = 6, $which = \u2026, $sigma = null, $v0 = null, $ncv = null, $maxiter = null, $tol = 0.0, $returnEigenvectors = true) svds svds($A, $k = 6, $which = \u2026, $v0 = null, $maxiter = null, $returnSingularVectors = true, $tol = 0.0) qmr qmr($A, $b, $x0 = null, $rtol = 1.0E-5, $atol = 0.0, $maxiter = null, $M1 = null, $M2 = null) tfqmr tfqmr($A, $b, $x0 = null, $rtol = 1.0E-5, $atol = 0.0, $maxiter = null, $M = null) lsmr lsmr($A, $b, $damp = 0.0, $atol = 1.0E-6, $btol = 1.0E-6, $conlim = 100000000.0, $maxiter = null) lobpcg lobpcg($A, $X, $B = null, $M = null, $Y = null, $tol = null"},{"type":"API","title":"ScipyFft","url":"http:\/\/tessero.org\/docs\/api\/tessero-ext-scipyfft","section":"Tessero\\Ext","text":"Tessero\\Ext\\ScipyFft dct dct($x, $type = 2, $n = null, $axis = -1, $norm = null) fht fht($a, $dln, $mu, $offset = 0, $bias = 0) ifht ifht($A, $dln, $mu, $offset = 0, $bias = 0) fhtoffset fhtoffset($dln, $mu, $initial = 0, $bias = 0) idct idct($x, $type = 2, $n = null, $axis = -1, $norm = null) dst dst($x, $type = 2, $n = null, $axis = -1, $norm = null) idst idst($x, $type = 2, $n = null, $axis = -1, $norm = null) dctn dctn($x, $type = 2, $s = null, $axes = null, $norm = null) idctn idctn($x, $type = 2, $s = null, $axes = null, $norm = null) dstn dstn($x, $type = 2, $s = null, $axes = null, $norm = null) idstn idstn($x, $type = 2, $s = null, $axes = null, $norm = null)"},{"type":"API","title":"TesseroManager","url":"http:\/\/tessero.org\/docs\/api\/tessero-laravel-tesseromanager","section":"Tessero\\Laravel","text":"Tessero\\Laravel\\TesseroManager __construct __construct(array $config = []) backend backend(): string applyRuntimeSettings applyRuntimeSettings(): void array array(mixed $data, ?string $dtype = null): Tessero\\Ext\\NDArray|Tessero\\NDArray zeros zeros(array|int $shape, string $dtype = 'float64'): Tessero\\Ext\\NDArray|Tessero\\NDArray fromBytes fromBytes(string $bytes, string $dtype, array $shape): Tessero\\Ext\\NDArray|Tessero\\NDArray linprog linprog(mixed $c, mixed $A_ub = null, mixed $b_ub = null, mixed $A_eq = null, mixed $b_eq = null, ?array $bounds = null): array milp milp(mixed $c, array|bool $integrality = true, mixed $A_ub = null, mixed $b_ub = null, mixed $A_eq = null, mixed $b_eq = null, ?array $bounds = null): array solveMdp solveMdp(mixed $P, mixed $R, float $gamma, string $method = 'policy_iteration'): array normal normal(int $seed, array|int $shape, float $mean = 0.0, float $sd = 1.0): Tessero\\Ext\\NDArray|Tessero\\NDArray random random(int $seed, array|int $shape): Tessero\\Ext\\NDArray|Tessero\\NDArray memmap memmap(string $filename, string $mode = 'r+', ?array $shape = null, string $dtype = 'float64', int $offset = 0): Tessero\\Ext\\NDArray|Tessero\\NDArray load load(string $path, ?string $mmapMode = null): Tessero\\Ext\\NDArray|Tessero\\NDArray openMemmap openMemmap(string $path, string $mode = 'r+', ?array $shape = null, string $dtype = 'float64', bool $fortranOrder = false): Tessero\\Ext\\NDArray|Tessero\\NDArray info info(): array config config(): array"},{"type":"API","title":"NumericArray","url":"http:\/\/tessero.org\/docs\/api\/tessero-laravel-rules-numericarray","section":"Tessero\\Laravel\\Rules","text":"Tessero\\Laravel\\Rules\\NumericArray __construct __construct(?int $ndim = null, ?array $shape = null, int $maxElements = 1000000, bool $allowBool = false) validate validate(string $attribute, mixed $value, Closure $fail): void check check(mixed $value, ?int $ndim = null, ?array $shape = null, int $maxElements = 1000000, bool $allowBool = false): ?string"},{"type":"Example","title":"creation-and-indexing","url":"http:\/\/tessero.org\/docs\/examples","section":"Arrays and indexing","text":"Arrays and indexing"},{"type":"Example","title":"slicing-strides","url":"http:\/\/tessero.org\/docs\/examples","section":"Arrays and indexing","text":"Arrays and indexing"},{"type":"Example","title":"connected-components","url":"http:\/\/tessero.org\/docs\/examples","section":"Graphs (csgraph)","text":"Graphs (csgraph)"},{"type":"Example","title":"dominant-frequency","url":"http:\/\/tessero.org\/docs\/examples","section":"FFT","text":"FFT"},{"type":"Example","title":"roundtrip","url":"http:\/\/tessero.org\/docs\/examples","section":"FFT","text":"FFT"},{"type":"Example","title":"npy-roundtrip","url":"http:\/\/tessero.org\/docs\/examples","section":".npy \/ .npz and memory maps","text":".npy \/ .npz and memory maps"},{"type":"Example","title":"validation-rule","url":"http:\/\/tessero.org\/docs\/examples","section":"Laravel bridge","text":"Laravel bridge"},{"type":"Example","title":"solve-and-fit","url":"http:\/\/tessero.org\/docs\/examples","section":"Linear algebra (dense)","text":"Linear algebra (dense)"},{"type":"Example","title":"out-parameter","url":"http:\/\/tessero.org\/docs\/examples","section":"Math and ufuncs","text":"Math and ufuncs"},{"type":"Example","title":"ufuncs","url":"http:\/\/tessero.org\/docs\/examples","section":"Math and ufuncs","text":"Math and ufuncs"},{"type":"Example","title":"value-iteration","url":"http:\/\/tessero.org\/docs\/examples","section":"Markov decision processes","text":"Markov decision processes"},{"type":"Example","title":"bounded-lbfgsb","url":"http:\/\/tessero.org\/docs\/examples","section":"Optimize","text":"Optimize"},{"type":"Example","title":"breakeven-brentq","url":"http:\/\/tessero.org\/docs\/examples","section":"Optimize","text":"Optimize"},{"type":"Example","title":"decay-leastsq","url":"http:\/\/tessero.org\/docs\/examples","section":"Optimize","text":"Optimize"},{"type":"Example","title":"demand-curve-fit","url":"http:\/\/tessero.org\/docs\/examples","section":"Optimize","text":"Optimize"},{"type":"Example","title":"implied-yield-newton","url":"http:\/\/tessero.org\/docs\/examples","section":"Optimize","text":"Optimize"},{"type":"Example","title":"nelder-mead-fmin","url":"http:\/\/tessero.org\/docs\/examples","section":"Optimize","text":"Optimize"},{"type":"Example","title":"rosenbrock-bfgs","url":"http:\/\/tessero.org\/docs\/examples","section":"Optimize","text":"Optimize"},{"type":"Example","title":"monte-carlo","url":"http:\/\/tessero.org\/docs\/examples","section":"Random","text":"Random"},{"type":"Example","title":"numpy-seed","url":"http:\/\/tessero.org\/docs\/examples","section":"Random","text":"Random"},{"type":"Example","title":"dataset-statistics","url":"http:\/\/tessero.org\/docs\/examples","section":"Reductions and statistics","text":"Reductions and statistics"},{"type":"Example","title":"leaderboard","url":"http:\/\/tessero.org\/docs\/examples","section":"Sorting and searching","text":"Sorting and searching"},{"type":"Example","title":"conjugate-gradient","url":"http:\/\/tessero.org\/docs\/examples","section":"Sparse matrices","text":"Sparse matrices"},{"type":"Example","title":"combinatorics","url":"http:\/\/tessero.org\/docs\/examples","section":"scipy.special","text":"scipy.special"},{"type":"Example","title":"logistic-and-erf","url":"http:\/\/tessero.org\/docs\/examples","section":"scipy.special","text":"scipy.special"},{"type":"Example","title":"ab-test","url":"http:\/\/tessero.org\/docs\/examples","section":"scipy.stats","text":"scipy.stats"},{"type":"Example","title":"linear-regression","url":"http:\/\/tessero.org\/docs\/examples","section":"scipy.stats","text":"scipy.stats"},{"type":"Example","title":"normal-distribution","url":"http:\/\/tessero.org\/docs\/examples","section":"scipy.stats","text":"scipy.stats"}]}