|
| 1 | +<!-- |
| 2 | +
|
| 3 | +@license Apache-2.0 |
| 4 | +
|
| 5 | +Copyright (c) 2019 The Stdlib Authors. |
| 6 | +
|
| 7 | +Licensed under the Apache License, Version 2.0 (the "License"); |
| 8 | +you may not use this file except in compliance with the License. |
| 9 | +You may obtain a copy of the License at |
| 10 | +
|
| 11 | + http://www.apache.org/licenses/LICENSE-2.0 |
| 12 | +
|
| 13 | +Unless required by applicable law or agreed to in writing, software |
| 14 | +distributed under the License is distributed on an "AS IS" BASIS, |
| 15 | +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| 16 | +See the License for the specific language governing permissions and |
| 17 | +limitations under the License. |
| 18 | +
|
| 19 | +--> |
| 20 | + |
| 21 | +<!-- lint disable first-heading-level --> |
| 22 | + |
| 23 | +<!-- Section to include assets such as the project logo, etc. Make sure to keep an empty line after the `section` element and another before the `/section` close. --> |
| 24 | + |
| 25 | +<section class="banner"> |
| 26 | + <div class="image" align="center"> |
| 27 | + <br> |
| 28 | + <br> |
| 29 | + <img src="https://cdn.rawgit.com/stdlib-js/stdlib/9f7d30f089ecc458a8b836a75afab75caf5c0b36/docs/assets/logo_banner.svg" alt="stdlib logo"> |
| 30 | + <br> |
| 31 | + <br> |
| 32 | + <br> |
| 33 | + <br> |
| 34 | + </div> |
| 35 | +</section> |
| 36 | + |
| 37 | +<!-- /.banner --> |
| 38 | + |
| 39 | +* * * |
| 40 | + |
| 41 | +<!-- Section to include introductory text. Make sure to keep an empty line after the intro `section` element and another before the `/section` close. --> |
| 42 | + |
| 43 | +<section class="intro"> |
| 44 | + |
| 45 | +stdlib ([/ˈstændərd lɪb/][ipa-english] "standard lib") is a standard library for JavaScript and Node.js, with an emphasis on numerical and scientific computing applications. The library provides a collection of robust, high performance libraries for mathematics, statistics, data processing, streams, and more and includes many of the utilities you would expect from a standard library. |
| 46 | + |
| 47 | +This is the TypeScript documentation for exported functions, methods, properties, classes, and variables. For help developing stdlib, see the [development guide][stdlib-development]. |
| 48 | + |
| 49 | +## Features |
| 50 | + |
| 51 | +- 150+ [special math functions][@stdlib/math/base/special]. |
| 52 | + |
| 53 | + <div class="image" align="center"> |
| 54 | + <img src="https://cdn.rawgit.com/stdlib-js/stdlib/203839353bc74297fe641207270f7917d2bda560/docs/assets/readme/base_special_math.png" alt="Demo showcasing special math functions"> |
| 55 | + </div> |
| 56 | + |
| 57 | +- 35+ [probability distributions][@stdlib/stats/base/dists], with support for evaluating probability density functions (PDFs), cumulative distribution functions (CDFs), quantiles, moments, and more. |
| 58 | + |
| 59 | + <div class="image" align="center"> |
| 60 | + <img src="https://cdn.rawgit.com/stdlib-js/stdlib/e13885087939c064c69aa43ee80ea52710de5591/docs/assets/readme/base_dists.png" alt="Demo showcasing probability distributions"> |
| 61 | + </div> |
| 62 | + |
| 63 | +- 40+ [seedable pseudorandom number generators][@stdlib/random/base] (PRNGs). |
| 64 | + |
| 65 | + <div class="image" align="center"> |
| 66 | + <img src="https://cdn.rawgit.com/stdlib-js/stdlib/83dcd0fad98883320a8b1efc801b2fc1ed2a003d/docs/assets/readme/base_prngs.png" alt="Demo showcasing PRNGs"> |
| 67 | + </div> |
| 68 | + |
| 69 | +- 200+ general [utilities][@stdlib/utils] for data transformation, functional programming, and asynchronous control flow. |
| 70 | + |
| 71 | + <div class="image" align="center"> |
| 72 | + <img src="https://cdn.rawgit.com/stdlib-js/stdlib/e6eeea31e49d6db1b6f57ae59d2988d4b427e285/docs/assets/readme/utils.png" alt="Demo showcasing general utilities"> |
| 73 | + </div> |
| 74 | + |
| 75 | +- 200+ [assertion utilities][@stdlib/assert] for data validation and feature detection. |
| 76 | + |
| 77 | + <div class="image" align="center"> |
| 78 | + <img src="https://cdn.rawgit.com/stdlib-js/stdlib/6970c8b4eb546a10712734d225c15863db9b2c92/docs/assets/readme/assert.png" alt="Demo showcasing assertion utilities"> |
| 79 | + </div> |
| 80 | + |
| 81 | +- 50+ [sample datasets][@stdlib/datasets] for testing and development. |
| 82 | + |
| 83 | + <div class="image" align="center"> |
| 84 | + <img src="https://cdn.rawgit.com/stdlib-js/stdlib/f71a38e62247e31dc47d248f6f1b3e434abeb971/docs/assets/readme/datasets.png" alt="Demo showcasing sample datasets"> |
| 85 | + </div> |
| 86 | + |
| 87 | +- A [plot API][@stdlib/plot/ctor] for data visualization and exploratory data analysis. |
| 88 | + |
| 89 | + <div class="image" align="center"> |
| 90 | + <img src="https://cdn.rawgit.com/stdlib-js/stdlib/39d75174b24ea2a84828d9624643776a164478e4/docs/assets/readme/plot.png" alt="Demo showcasing plot API"> |
| 91 | + </div> |
| 92 | + |
| 93 | +- Native add-ons for interfacing with BLAS libraries, with pure JavaScript fallbacks. |
| 94 | + |
| 95 | + <div class="image" align="center"> |
| 96 | + <img src="https://cdn.rawgit.com/stdlib-js/stdlib/efede6af3ef957da08838903b0558441263adf85/docs/assets/readme/base_blas.png" alt="Demo showcasing BLAS APIs"> |
| 97 | + </div> |
| 98 | + |
| 99 | +- A [benchmark framework][@stdlib/bench/harness] supporting TAP. |
| 100 | + |
| 101 | + <div class="image" align="center"> |
| 102 | + <img src="https://cdn.rawgit.com/stdlib-js/stdlib/4833049f8d1895585bd51ec6fa97b8ca0d37c6fb/docs/assets/readme/benchmark.gif" alt="Demo showcasing benchmark framework"> |
| 103 | + </div> |
| 104 | + |
| 105 | +- REPL environment with integrated help and examples. |
| 106 | + |
| 107 | + <div class="image" align="center"> |
| 108 | + <img src="https://cdn.rawgit.com/stdlib-js/stdlib/3864ae6f86bbc215956c0e667d82d49a6eaca780/docs/assets/readme/repl.gif" alt="Demo showcasing REPL environment"> |
| 109 | + </div> |
| 110 | + |
| 111 | +- Can be bundled using [Browserify][browserify], [Webpack][webpack], and other bundlers for use in web browsers. |
| 112 | + |
| 113 | + <div class="image" align="center"> |
| 114 | + <img src="https://cdn.rawgit.com/stdlib-js/stdlib/e54894a93697653dda22d11cd0aec1ccb292b7b8/docs/assets/readme/bundled.png" alt="Demo showcasing browser support"> |
| 115 | + </div> |
| 116 | + |
| 117 | +## Resources |
| 118 | + |
| 119 | +- [**Homepage**][stdlib-homepage] |
| 120 | +- [**Documentation**][stdlib-documentation] |
| 121 | +- [**Source code**][stdlib-source] |
| 122 | +- [**Code coverage**][stdlib-code-coverage] |
| 123 | +- [**FAQ**][stdlib-faq] |
| 124 | + |
| 125 | +### External Resources |
| 126 | + |
| 127 | +- [**Twitter**][stdlib-twitter] |
| 128 | +- [**Gitter**][stdlib-gitter] |
| 129 | + |
| 130 | +## Prerequisites |
| 131 | + |
| 132 | +Running stdlib **requires** the following prerequisites: |
| 133 | + |
| 134 | +- [Node.js][node-js]: JavaScript runtime (version `>= 0.10`) |
| 135 | +- [npm][npm]: package manager (version `> 2.7.0`; if Node `< 1.0.0`, version `> 2.7.0` and `< 4.0.0`; if Node `< 6.0.0`, version `> 2.7.0` and `< 6.0.0`) |
| 136 | + |
| 137 | +Most functionality in stdlib is implemented exclusively in JavaScript; however, some implementations try to capture performance benefits by using [native bindings][node-js-add-ons] and/or [WebAssembly][webassembly]. While **not** required to run stdlib, as **every** stdlib implementation has a JavaScript fallback, the following dependencies are **required** for building native add-ons, including linking to BLAS and LAPACK libraries: |
| 138 | + |
| 139 | +- [GNU make][make]: development utility and task runner |
| 140 | +- [GNU bash][bash]: an sh-compatible shell |
| 141 | +- [gcc & g++][gcc] or [Clang][clang]: C/C++ compilation and linking (g++ version `>= 4.8`; clang version `>= 3.5`, Xcode version `>=8.3.1` on OS X) |
| 142 | +- [gfortran][gfortran]: Fortran compilation and linking (version `>= 4.8`) |
| 143 | + |
| 144 | +While **not** required to run stdlib, the following dependencies are **required** for automatically downloading external libraries: |
| 145 | + |
| 146 | +- [curl][curl], [wget][wget], or [fetch][fetch] (FreeBSD): utilities for downloading remote resources |
| 147 | + |
| 148 | +The following external libraries can be automatically downloaded and compiled from source using `make`: |
| 149 | + |
| 150 | +- [OpenBLAS][openblas]: optimized BLAS library |
| 151 | +- [Electron][electron]: framework for cross-platform desktop applications |
| 152 | + |
| 153 | +## Installation |
| 154 | + |
| 155 | +To install as a library or application dependency, |
| 156 | + |
| 157 | +<!-- run-disable --> |
| 158 | + |
| 159 | +```bash |
| 160 | +$ npm install @stdlib/stdlib |
| 161 | +``` |
| 162 | + |
| 163 | +To install globally for use as a command-line utility, |
| 164 | + |
| 165 | +<!-- run-disable --> |
| 166 | + |
| 167 | +```bash |
| 168 | +$ npm install -g @stdlib/stdlib |
| 169 | +``` |
| 170 | + |
| 171 | +which will expose the `stdlib` command. For example, to see available sub-commands |
| 172 | + |
| 173 | +<!-- run-disable --> |
| 174 | + |
| 175 | +```bash |
| 176 | +$ stdlib help |
| 177 | +``` |
| 178 | + |
| 179 | +and to run the [REPL][@stdlib/repl] |
| 180 | + |
| 181 | +<!-- run-disable --> |
| 182 | + |
| 183 | +```bash |
| 184 | +$ stdlib repl |
| 185 | +``` |
| 186 | + |
| 187 | +For distributable bundles for use in browser environments or as shared ("vendored") libraries in server environments, see the [`dist`][stdlib-bundles] directory and associated [guide][stdlib-bundles]. |
| 188 | + |
| 189 | +Otherwise, to install as a system library, follow the [download][stdlib-development], [configuration][stdlib-development], and [installation][stdlib-development] instructions as described in the [development guide][stdlib-development]. |
| 190 | + |
| 191 | +* * * |
| 192 | + |
| 193 | +## Contributing |
| 194 | + |
| 195 | +See the [contributing guidelines][stdlib-contributing]. |
| 196 | + |
| 197 | +## License |
| 198 | + |
| 199 | +See [LICENSE][stdlib-license]. |
| 200 | + |
| 201 | +## Copyright |
| 202 | + |
| 203 | +Copyright © 2016-2019. The Stdlib [Authors][stdlib-authors]. |
| 204 | + |
| 205 | +</section> |
| 206 | + |
| 207 | +<!-- /.intro --> |
| 208 | + |
| 209 | +<!-- Section for all links. Make sure to keep an empty line after the `section` element and another before the `/section` close. --> |
| 210 | + |
| 211 | +<section class="links"> |
| 212 | + |
| 213 | +[make]: https://www.gnu.org/software/make |
| 214 | + |
| 215 | +[bash]: https://www.gnu.org/software/bash/ |
| 216 | + |
| 217 | +[curl]: http://curl.haxx.se/ |
| 218 | + |
| 219 | +[wget]: http://www.gnu.org/software/wget |
| 220 | + |
| 221 | +[fetch]: http://www.freebsd.org/cgi/man.cgi?fetch%281%29 |
| 222 | + |
| 223 | +[node-js]: https://nodejs.org/en/ |
| 224 | + |
| 225 | +[npm]: https://www.npmjs.com/ |
| 226 | + |
| 227 | +[gcc]: http://gcc.gnu.org/ |
| 228 | + |
| 229 | +[clang]: http://clang.llvm.org/ |
| 230 | + |
| 231 | +[gfortran]: https://gcc.gnu.org/fortran/ |
| 232 | + |
| 233 | +[openblas]: https://github.com/xianyi/OpenBLAS |
| 234 | + |
| 235 | +[electron]: https://electron.atom.io/ |
| 236 | + |
| 237 | +[webassembly]: http://webassembly.org/ |
| 238 | + |
| 239 | +[node-js-add-ons]: https://nodejs.org/api/addons.html |
| 240 | + |
| 241 | +[browserify]: https://github.com/substack/node-browserify |
| 242 | + |
| 243 | +[webpack]: https://webpack.js.org/ |
| 244 | + |
| 245 | +[ipa-english]: https://en.wikipedia.org/wiki/Help:IPA/English |
| 246 | + |
| 247 | +[stdlib-contributing]: https://github.com/stdlib-js/stdlib/blob/develop/CONTRIBUTING.md |
| 248 | + |
| 249 | +[stdlib-development]: https://github.com/stdlib-js/stdlib/blob/develop/docs/development.md |
| 250 | + |
| 251 | +[stdlib-authors]: https://github.com/stdlib-js/stdlib/graphs/contributors |
| 252 | + |
| 253 | +[stdlib-license]: https://raw.githubusercontent.com/stdlib-js/stdlib/develop/LICENSE |
| 254 | + |
| 255 | +[stdlib-homepage]: https://github.com/stdlib-js/stdlib |
| 256 | + |
| 257 | +[stdlib-documentation]: https://github.com/stdlib-js/stdlib |
| 258 | + |
| 259 | +[stdlib-faq]: https://github.com/stdlib-js/stdlib/blob/develop/FAQ.md |
| 260 | + |
| 261 | +[stdlib-source]: https://github.com/stdlib-js/stdlib |
| 262 | + |
| 263 | +[stdlib-bundles]: https://github.com/stdlib-js/stdlib/tree/develop/dist |
| 264 | + |
| 265 | +[stdlib-code-coverage]: https://codecov.io/github/stdlib-js/stdlib/branch/develop |
| 266 | + |
| 267 | +[stdlib-twitter]: https://twitter.com/stdlibjs |
| 268 | + |
| 269 | +[stdlib-gitter]: https://gitter.im/stdlib-js/stdlib |
| 270 | + |
| 271 | +[@stdlib/math/base/special]: https://github.com/stdlib-js/stdlib/tree/develop/lib/node_modules/%40stdlib/math/base/special |
| 272 | + |
| 273 | +[@stdlib/stats/base/dists]: https://github.com/stdlib-js/stdlib/tree/develop/lib/node_modules/%40stdlib/stats/base/dists |
| 274 | + |
| 275 | +[@stdlib/random/base]: https://github.com/stdlib-js/stdlib/tree/develop/lib/node_modules/%40stdlib/random/base |
| 276 | + |
| 277 | +[@stdlib/assert]: https://github.com/stdlib-js/stdlib/tree/develop/lib/node_modules/%40stdlib/assert |
| 278 | + |
| 279 | +[@stdlib/datasets]: https://github.com/stdlib-js/stdlib/tree/develop/lib/node_modules/%40stdlib/datasets |
| 280 | + |
| 281 | +[@stdlib/utils]: https://github.com/stdlib-js/stdlib/tree/develop/lib/node_modules/%40stdlib/utils |
| 282 | + |
| 283 | +[@stdlib/plot/ctor]: https://github.com/stdlib-js/stdlib/tree/develop/lib/node_modules/%40stdlib/plot/ctor |
| 284 | + |
| 285 | +[@stdlib/bench/harness]: https://github.com/stdlib-js/stdlib/tree/develop/lib/node_modules/%40stdlib/bench/harness |
| 286 | + |
| 287 | +[@stdlib/repl]: https://github.com/stdlib-js/stdlib/tree/develop/lib/node_modules/%40stdlib/repl |
| 288 | + |
| 289 | +</section> |
| 290 | + |
| 291 | +<!-- /.links --> |
0 commit comments