StackGenVis: Alignment of Data, Algorithms, and Models for Stacking Ensemble Learning Using Performance Metrics https://doi.org/10.1109/TVCG.2020.3030352
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
StackGenVis/frontend/node_modules/rat-vec/README.md

111 lines
3.1 KiB

4 years ago
rat-vec
=======
Exact rational vector arithmetic.
<img src="img/rat.jpg">
rat-vec is *slow* but reliable. You can use it to get quickly and reliably
implement geometric algorithms, then go back and smash your head into a wall
trying to optimize them with filters and predicates and snap rounding and so on.
This library is built on top of [bn.js](https://github.com/indutny/bn.js/)
# Example
```javascript
var vec = require('rat-vec')
var toFloat = require('rat-vec/to-float')
var add = require('rat-vec/add')
var sub = require('rat-vec/sub')
var dot = require('rat-vec/sub')
```
# Install
```
npm i rat-vec
```
# API
A `rat-vec` is an array of [`big-rat`s](https://github.com/rat-nest/big-rat).
#### `var r = require('rat-vec')(v)`
Converts a vector of `n` floating point numbers into an exact rational vector of `n+1` big ints.
* `v` is a vector of floats, `big-rat`s or strings
**Returns** A rational vector of big integers
#### `require('rat-vec/is-vec')(v)`
Test if `v` is a rat-vec
#### `var v = require('rat-vec/to-float')(r)`
Rounds a vector of big-rats into a
* `r` is a vector of `n` big integers
**Returns** A vector of `n` floats representing the closest representable vector
#### `var s = require('rat-vec/add')(a, b)`
**Returns** The vector sum of `a` and `b`
#### `var d = require('rat-vec/sub')(a, b)`
**Returns** The vector difference of `a` and `b`
#### `var f = require('rat-vec/dot')(a, b)`
**Returns** The dot product of `a` and `b`
#### `var v = require('rat-vec/muls')(a, s)`
**Returns** The scalar product of `a` and `s`, where `s` is a float, big-rat or string
#### `var v = require('rat-vec/divs')(a, s)`
**Returns** `a` divided by the scalar `s`
#### `var lerp = require('rat-vec/lerp')(a, b, t)`
Linearly interpolate between `a` and `b` with parameter `t`
#### `var c = require('rat-vec/cmp')(a, b)`
Compares the components of `a` and `b`, returns an array of `0,+1,-1` whose components are the result of comparing each value.
#### `var eq = require('rat-vec/equals')(a, b)`
Test if two rational vectors are equal.
#### `var h = require('rat-vec/max')(a, b)`
Computes the component-wise maximum of `a` and `b`
#### `var l = require('rat-vec/min')(a, b)`
Computes the component-wise minimum of `a` and `b`
#### `var p = require('rat-vec/mul')(a, b)`
Computes the component-wise product of `a` and `b`
#### `var r = require('rat-vec/recip')(a)`
Computes the component-wise reciprocal of `a`
#### `var q = require('rat-vec/div')(a, b)`
Computes the component-wise quotient of `a` and `b`
#### `var n = require('rat-vec/neg')(x)`
Computes the additive inverse of `x`
#### `var n = require('rat-vec/abs')(x)`
Computes the component-wise absolute value of `x`
# Credits
(c) 2015, MIT License
[Rat logo CC licensed, (c) La Tarte Au Citron](https://www.flickr.com/photos/tartaucitron/11328783804/in/photolist-ig5YJG-6rds6G-9ZBxcz-b9JfZ-5qdtpw-5e48pj-i6RTUn-4BbDwn-ag7YHX-9ZEtw3-7dV4fm-i6Sh6L-ieVirs-9ntyy-i6S2d9-5UAf8v-9ZBweF-qdmsJJ-aioESD-4AQEj5-9iL3y4-b4yPpk-furjEV-5UExDy-mgNSyg-5y7RQ5-ddxkgR-RTNKs-9ZEna9-5UT4cs-uZnbz-YWUx-aDRSKQ-dtTDuN-ieVsZV-5y3sLe-5TrTjY-uaN1h-5y3icB-5XjCbR-dm3VZC-5R32Eb-7ZKsBm-9ZBx4g-7TVNKb-bkJN5N-9hyNho-9ZBvwe-9ZEnmq-9ZEnsy)