An FFT based Gaussian filter for ndarrays.Filters an ndarray using a Gaussian filter.
scijs ndarray gaussian filterGeneral matrix multiply for ndarrays. This is analogous to the BLAS level 3 routine xGEMM.Note that while this implementation is correct, it is not yet very optimized. If someone wants to take over this project or suggest improvements, patches are welcome.
scijs matrix multiply ndarray blas level 3 general vector outer inner product linear algebra numerical methodsOnly square matrices are currently tested. For complex numbers see ndarray-gram-schmidt-qr-complex.The algorithm currently only calculates the in-place QR decomposition and returns true on successful completion.
gramschmidt linearalgebra matrix qr ndarray scijsThe specific implementation is based on the pseudocode from Walter Gander's Algorithms for the QR-Decomposition. This algorithm computes both R and the Householder reflectors in place, storing R in the upper-triangular portion of A, the diagonal of R in a separate vector and the Householder reflectors in the columns of A. To eliminate unnecessary operations, the Householder reflectors are normalized so that norm(v) = sqrt(2).Computes the in-place triangularization of A, returning the Householder reflectors in the lower-triangular portion of A (including the diagonal) and R in the upper-triangular portion of A (excluding diagonal) with the diagonal of R stored in d. d must be a one-dimensional vector with length at least n.
householder linearalgebra matrix qr ndarray scijsResamples an ndarray by an arbitrary (rational) factor using a sinc kernel.Resamples input by a factor of output.shape/input.shape, storing the result in output (this also means the factor can differ per dimension).
scijs downsample upsample resample ndarray sinc interpolationThis can parse files in the Neuroimaging Informatics Technology Initiative format (version 1). Currently, data (as opposed to the header) can only be read from ".nii" files (files that include both the header and the data in one file), you can still read the header from a header-only file though.Note that the output is compatible with what is output by nrrd-js. The main area where this breaks down (so far) is encoding orientation information. The NIfTI file format allows for two different transformations in one file (with various options for specifying the transformations). In contrast, the NRRD format only supports a very simple scheme whereby the "data axes" can be mapped to basis vectors in the physical space (in addition to another scheme more or less corresponding to "method 1" in the NIfTI format). Currently, nifti-js simply discards one type of transformation (the sform transformation).
scijs niftiIntegrate a system of ODEs using the Euler method
scijs ode euler integration differential-equations calculus first-orderFor a similar adaptive method using the fifth order Cash-Karp Runge-Kutta method with fourth order embedded error estimator, see ode45-cash-karp.Returns: Initialized integrator object.
scijs ode rk4 runge-kutta integration differential-equations calculuswhere is a vector of length . Given time step , the Cash-Karp method uses a fifth order Runge-Kutta scheme with a fourth order embedded estimator in order to control the error. In other words, the same intermediate values used in calculating the fifth order update can be used to calculate a fourth order estimate. The difference yields an error estimate, and the error estimate controls the timestep .Initialized integrator object.
scijs ode rk4 runge-kutta adaptive rk45 cash-karp ode45 integration differential-equations calculusAligns two ndarrays up to a translation such that the sum of squared differences between them is minimized. This can be used as a quick preprocess for other more detailed alignment algorithms.
scijs phase correlation normalized fft alignment matching patch template image cross volume array ndarrayThis module has been deprecated in favor of durand-kerner, which is a faster and more robust implementation all around.See history for a more complete readme.
polynomial scijs roots algebra mathConvenient and efficient B-splines. This package allows you to generate fairly efficient code for evaluating B-splines of arbitrary degree using de Boor's algorithm.Generates function for evaluating an n-th order B-spline.
scijs spline b-splineAmong other uses, window functions help control spectral leakage when doing Fourier Analysis. This collection of window functions is copied directly from Wikipedia. Caveat emptor.To calculate the value of a window function, pass the sample number and total number of samples to one of the window functions listed below, along with any additional parameters it may require. The plots below are calculated from the npm module and plotted with Fourier transform to illustrate the spectral leakage. See the Wikipedia page on window functions for more details.
scijs complex window-function math fourier spectral-analysis dspThis library can be used to generate cache efficient map/reduce operations for ndarrays.Note that in the above, i is not an actual Array, the indexing notation is just syntactic sugar.
scijs ndarray component scientific computing volume image array typed scalar math linear algebra signal operation scan map reduce cache arithmeticPerforms a distance transform of array in place using Meijster's algorithm.array is updated in place and gets the distance values.
scijs distance transform euclidean manhattan taxicab morphology chebyshev chessboard lp lebesgue metricFinds all the roots of a polynomial by Weierstrass' method (or known in Abramowitz&Stegun as the Durand-Kerner method). This is basically a generalization of Newton's method that works for multiple roots.Finds the roots of a polynomial whose real coefficients are given by r_coeff and imaginary coefficients by i_coeff.
scijs root polynomial weierstrass durand kerner multiple zero solve algebra math newton equationIntegrate a system of ODEs using the Second Order Runge-Kutta (Midpoint) method
scijs integral definite-integral integration calculus adaptive rombergA quick note on why this exists: The goal is not to reinvent the wheel. There are lots of implementations of BLAS out there. Even for JS. There's a nodejs wrapper for LAPACK. Depending on what you need, maybe you should use that. The goal of this is to bring standardized BLAS operations to ndarrays so that algorithms can be made as future-resistant as possible by writing them in terms of standardized, easily-translatable operations.This library implements the basic vector operations of the Level 1 Basic Linear Algebra Subprograms (BLAS). Many of these functions are also implemented in ndarray-ops—which also has functions that are not included in BLAS. So the right answer is probably some blend of the two. This library exists mainly to frame things in a relatively standard, coherent framework.
blas ndarray scijs linear-algebraThis library implements the basic vector operations of the Level 1 Basic Linear Algebra Subprograms (BLAS). Many of these functions are also implemented in ndarray-ops—which also has functions that are not included in BLAS. So the right answer is probably some blend of the two. This library exists mainly to frame things in a relatively standard, coherent framework.NB: This library performs no checks to ensure you're only passing one-dimensional vectors. That's either a bug or a feature, depending on how you think about it.
blas complex ndarray scijs linearalgebra
We have large collection of open source products. Follow the tags from
Tag Cloud >>
Open source products are scattered around the web. Please provide information
about the open source projects you own / you use.
Add Projects.