Comparing version 1.8.4 to 1.8.5
{ | ||
"name": "smath", | ||
"version": "1.8.4", | ||
"version": "1.8.5", | ||
"description": "Small math function library", | ||
@@ -5,0 +5,0 @@ "homepage": "https://npm.nicfv.com/smath", |
104
README.md
@@ -0,1 +1,26 @@ | ||
[Home](https://npm.nicfv.com/) | [Docs](https://npm.nicfv.com/smath/) | [GitHub](https://github.com/nicfv/npm/tree/main/smath/) | [npm](https://www.npmjs.com/package/smath) | [Changelog](https://github.com/nicfv/npm/blob/main/smath//CHANGELOG.md) | [YouTube](https://www.youtube.com/@n1cfv) | Small math function library | ||
![NPM Downloads](https://img.shields.io/npm/dt/smath) | ||
![NPM Version](https://img.shields.io/npm/v/smath) | ||
![Relative date](https://img.shields.io/date/1713369829) | ||
![GitHub watchers](https://img.shields.io/github/watchers/nicfv/npm) | ||
![GitHub forks](https://img.shields.io/github/forks/nicfv/npm) | ||
![GitHub Repo stars](https://img.shields.io/github/stars/nicfv/npm) | ||
[![Static Badge](https://img.shields.io/badge/donate-PayPal-blue)](https://paypal.me/nicfv) | ||
## Installation | ||
smath can be installed from the official [npm package repository](https://www.npmjs.com/package/smath). It is highly recommended to install the latest version, which is installed by default with the following command. | ||
```shell | ||
npm i smath@1.8.5 | ||
``` | ||
## Bugs and Requests | ||
Is there a way we can make smath better? Please report all bugs, issues, and new feature requests to the [issues](https://github.com/nicfv/npm/issues) page in the [official repository](https://github.com/nicfv/npm). For critical security issues, please send an email to <smath@nicfv.com>. | ||
## Contribute | ||
Thank you for your interest in contributing to smath! smath is an open source software package maintained by Nicolas Ventura ([@nicfv](https://github.com/nicfv)) and built by users like you! You are allowed to fork the repository as permitted by the [MIT License](https://raw.githubusercontent.com/nicfv/npm/main/LICENSE) terms. Contributions are welcome by submitting a [pull request](https://github.com/nicfv/npm/pulls). Please follow the existing code styling if submitting a pull request. Thank you for your consideration! | ||
## Getting Started | ||
@@ -24,1 +49,80 @@ | ||
``` | ||
## Examples | ||
Here are a few quickstart examples written in JavaScript that showcase some out-of-box features of the `smath` package. | ||
### JavaScript Math Oddities | ||
Sometimes, JavaScript does weird math! Try adding `0.1 + 0.2` in your NodeJS terminal. What did you get? | ||
> Hint: It's not 0.3! | ||
The function `SMath.approx()` is an attempt to mitigate some of the issues that arise when doing arithmetic with non-whole numbers. | ||
#### Instructions | ||
1. Copy the source code | ||
1. Paste into a new file | ||
1. Save as `JavaScript-Math-Oddities.mjs` | ||
1. Run this command in your terminal | ||
```shell | ||
node JavaScript-Math-Oddities.mjs | ||
``` | ||
#### Source | ||
```js | ||
import { SMath } from 'smath'; | ||
// Determine the value of 0.1 + 0.2 using vanilla JavaScript and SMath | ||
console.log('0.1 + 0.2 == 0.3 is ' + (0.1 + 0.2 == 0.3)); | ||
console.log('SMath.approx(0.1 + 0.2, 0.3) is ' + SMath.approx(0.1 + 0.2, 0.3)); | ||
``` | ||
#### Output | ||
```text | ||
0.1 + 0.2 == 0.3 is false | ||
SMath.approx(0.1 + 0.2, 0.3) is true | ||
``` | ||
### Temperature Conversion | ||
This example demonstrates a simple temperature converter from Celsius to Fahrenheit, using `SMath.translate()` to linearly interpolate between unit systems. The translation uses freezing and boiling points to fix the bounds of the linear interpolation. | ||
#### Instructions | ||
1. Copy the source code | ||
1. Paste into a new file | ||
1. Save as `Temperature-Conversion.mjs` | ||
1. Run this command in your terminal | ||
```shell | ||
node Temperature-Conversion.mjs | ||
``` | ||
#### Source | ||
```js | ||
import { SMath } from 'smath'; | ||
// Water always freezes at the | ||
// same temperature, but the | ||
// units might be different. | ||
// Define some constants to | ||
// create two number ranges. | ||
const C_Freeze = 0, | ||
C_Boil = 100, | ||
F_Freeze = 32, | ||
F_Boil = 212; | ||
// Use the `SMath` class to | ||
// generate an array of five | ||
// linearly spaced temperature | ||
// values from 0 to 20. | ||
const C = SMath.linspace(0, 20, 5); | ||
// Use the `SMath` class to linearly | ||
// interpolate the temperature in the | ||
// C number range to a temperature | ||
// in the F number range. | ||
const F = C.map(c => SMath.translate(c, C_Freeze, C_Boil, F_Freeze, F_Boil)); | ||
// Print out each temperature | ||
// in both units of C and F. | ||
for (let i = 0; i < C.length; i++) { | ||
console.log(C[i].toFixed() + 'C is ' + F[i].toFixed() + 'F') | ||
} | ||
``` | ||
#### Output | ||
```text | ||
0C is 32F | ||
5C is 41F | ||
10C is 50F | ||
15C is 59F | ||
20C is 68F | ||
``` |
New author
Supply chain riskA new npm collaborator published a version of the package for the first time. New collaborators are usually benign additions to a project, but do indicate a change to the security surface area of a package.
Found 1 instance in 1 package
37887
128
0