vvishwa / qml Goto Github PK
View Code? Open in Web Editor NEWThis project forked from zholos/qml
math library for kdb+
Home Page: http://althenia.net/qml
License: Other
This project forked from zholos/qml
math library for kdb+
Home Page: http://althenia.net/qml
License: Other
Introduction ------------ qml is a library for statistics, linear algebra, and optimization in kdb+. It provides an interface between the q programming language and numerical libraries such as LAPACK. License ------- qml is free software, distributed under a BSD-style license. It is provided in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranties of MERCHANTABILITY and FITNESS FOR A PARTICULAR PURPOSE. See LICENSE.txt for more details. qml is linked against several other libraries. The copyrights and licenses for these libraries are also listed in LICENSE.txt. Installation ------------ To compile and install from source code, run ./configure make make test make install To install a precompiled binary, copy qml.q into the same directory as q.k, and copy qml.dll or qml.so into the same directory as q.exe or q. Then run test.q. If building 32-bit version for kdb+ 32-bit follow below ./configure KXARCH=l32 --build-blas make make test make install Usage ----- Load with q)\l qml.q All functions are in the .qml namespace. Numerical arguments are automatically converted into floating-point. Matrixes are in the usual row-major layout (lists of row vectors). Complex numbers are represented as pairs of their real and imaginary parts. q).qml.nicdf .25 .5 .975 / normal distribution quantiles -0.6744898 0 1.959964 q).qml.mchol (1 2 1;2 5 4;1 4 6) / Cholesky factorization 1 2 1 0 1 2 0 0 1 q).qml.poly 2 -9 16 -15 / solve 2x^3-9x^2+16x-15=0 2.5 1 1.414214 1 -1.414214 q).qml.mlsq[(1 1;1 2;1 3;1 4);11 2 -3 -4] / fit line 14 -5f q).qml.conmin[{x*y+1};{1-(x*x)+y*y};0 0] / minimize x(y+1) s.t. x^2+y^2<=1 -0.8660254 0.5 Constants and functions ----------------------- pi pi e e eps smallest representable step from 1. sin[x] sine cos[x] cosine tan[x] tangent asin[x] arcsine acos[x] arccosine atan[x] arctangent atan2[x;y] atan[x%y] sinh[x] hyperbolic sine cosh[x] hyperbolic cosine tanh[x] hyperbolic tangent asinh[x] hyperbolic arcsine acosh[x] hyperbolic arccosine atanh[x] hyperbolic arctangent exp[x] exponential expm1[x] exp[x]-1 log[x] logarithm log10[x] base-10 logarithm logb[x] extract binary exponent log1p[x] log[1+x] pow[a;x] exponentiation sqrt[x] square root cbrt[x] cube root hypot[x;y] sqrt[pow[x;2]+pow[y;2]] floor[x] round downward ceil[x] round upward fabs[x] absolute value fmod[x;y] remainder of x%y erf[x] error function erfc[x] complementary error function lgamma[x] log of absolute value of gamma function gamma[x] gamma function beta[x;y] beta function pgamma[a;x] lower incomplete gamma function (a>0) pgammac[a;x] upper incomplete gamma function (a>0) pgammar[a;x] regularized lower incomplete gamma function (a>0) pgammarc[a;x] regularized upper incomplete gamma function (a>0) ipgammarc[a;p] inverse complementary regularized incomplete gamma function (a>0,p>=.5) pbeta[a;b;x] incomplete beta function (a,b>0) pbetar[a;b;x] regularized incomplete beta function (a,b>0) ipbetar[a;b;p] inverse regularized incomplete beta function (a,b>0) j0[x] order 0 Bessel function j1[x] order 1 Bessel function y0[x] order 0 Bessel function of the second kind y1[x] order 1 Bessel function of the second kind ncdf[x] CDF of normal distribution nicdf[p] its inverse c2cdf[k;x] CDF of chi-squared distribution (k>=1) c2icdf[k;p] its inverse stcdf[k;x] CDF of Student's t-distribution (natural k) sticdf[k;p] its inverse fcdf[d1;d2;x] CDF of F-distribution (d1,d2>=1,x>=0) ficdf[d1;d2;p] its inverse gcdf[k;th;x] CDF of gamma distribution gicdf[k;th;p] its inverse bncdf[k;n;p] CDF of binomial distribution bnicdf[k;n;x] its inverse for p (k<n) pscdf[k;lambda] CDF of Poisson distribution psicdf[k;p] its inverse for lambda smcdf[n;e] CDF for one-sided Kolmogorov-Smirnov test smicdf[n;e] its inverse kcdf[x] CDF for Kolmogorov distribution kicdf[p] its inverse (p>=1e-8) diag[diag] make diagonal matrix mdim[matrix] number of (rows; columns) mdiag[matrix] extract main diagonal mdet[matrix] determinant mrank[matrix] rank minv[matrix] inverse mpinv[matrix] pseudoinverse dot[a;b] dot product mm[A;B] multiply mmx[opt;A;B] mm[] with options `lflip: flip A `rflip: flip B ms[A;B] solve B=A mm X, A is triangular mev[matrix] (eigenvalues; eigenvectors) sorted by decreasing modulus mchol[matrix] Cholesky factorization upper matrix mqr[matrix] QR factorization: (Q; R) mqrp[matrix] QR factorization with column pivoting: (Q; R; P), matrix@\:P=Q mm R mlup[matrix] LUP factorization with row pivoting: (L; U; P), matrix[P]=L mm U msvd[matrix] singular value decomposition: (U; Sigma; V) mkron[A;B] Kronecker product poly[coef] roots of a polynomial (highest-degree coefficient first) mls[A;B] solve B=A mm X mlsx[opt;A;B] mls[] with options `equi: equilibrate the system (default: don't) `flip: flip A, and flip B and X unless B is a vector mlsq[A;B] solve min ||B-A mm X|| mlsqx[opt;A;B] mlsq[] with options `svd: use SVD algorithm (default: QR or LQ) `flip: flip A, and flip B and X unless B is a vector root[f;(x0;x1)] find root on interval (f(x0)f(x1)<0) rootx[opt;f;(x0;x1)] root[] with options (as dictionary or mixed list) `iter: max iterations (default: 100) `tol: numerical tolerance (default: ~1e-8) `full: full output (default: only x) `quiet: return null on failure (default: signal) solve[eqs;x0] solve nonlinear equations (given as functions) solvex[opt;eqs;x0] solve[] with options `iter: max iterations (default: 1000) `tol: numerical tolerance (default: ~1e-8) `full: full output (default: only x) `quiet: return null on failure (default: signal) `steps: RK steps per iteration (default: 1) `rk: use RK steps only (default: RK, SLP) `slp: use SLP steps only (default: RK, SLP) line[f;base;x0] line search for minimum from base linex[opt;f;base;x0] line[] with same options as rootx[] min[f;x0] find unconstrained minimum min[(f;df);x0] min[] with analytic gradient function minx[opt;f;x0] min[] with same options as solvex[], plus `nm: use Nelder–Mead method (default: CONMAX) `sbplx: use Subplex method (default: CONMAX) conmin[f;cons;x0] find constrained minimum (functions cons>=0) conmin[(f;df);flip(cons;dcons);x0] conmin[] with analytic gradient functions conminx[opt;f;cons;x0] conmin[] with same options as solvex[], plus `lincon: assume linear cons (default: nonlinear) `cobyla: use COBYLA method (default: CONMAX)
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.