npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

calcx

v1.0.0

Published

Lightweight calculation library

Downloads

10

Readme

calcx

CI

calcx is a powerful TypeScript-based library that provides a wide range of mathematical functions. Whether you need to perform basic arithmetic, geometry, algebra, or complex financial calculations, calcx has you covered.

Features

  • Geometry Calculations: Calculate areas, perimeters, and volumes for various shapes like circles, triangles, rectangles, ellipses, spheres, and cylinders.
  • Algebraic Operations: Perform factorials, permutations, combinations, and logarithmic calculations with ease.
  • Financial Calculations: Compute simple and compound interest, as well as exponential growth and decay.
  • Conversion Utilities: Convert numbers between decimal, binary, octal, and hexadecimal formats.
  • Vector Operations: Calculate distances and centroids for points in a 2D space.

Installation

You can install calcx via npm:

npm install calcx

Usage Here’s how you can use calcx in your project:

import calcx from 'calcx';

// Example: Calculate the area of a circle
const radius = 5;
const area = calcx.areaOfCircle(radius);
console.log(`The area of the circle is ${area}`);

// Example: Calculate compound interest
const principal = 1000;
const rate = 0.05;
const timesCompounded = 4;
const years = 2;
const futureValue = calcx.compoundInterest(principal, rate, timesCompounded, years);
console.log(`The future value is ${futureValue}`);

API Reference

Geometry

  • areaOfCircle(r: number): number
    Calculates the area of a circle given its radius.

  • perimeterOfCircle(r: number): number
    Calculates the perimeter of a circle given its radius.

  • areaOfTriangle(base: number, height: number): number
    Calculates the area of a triangle given its base and height.

  • perimeterOfTriangle(a: number, b: number, c: number): number
    Calculates the perimeter of a triangle given the lengths of its three sides.

  • areaOfRectangle(width: number, height: number): number
    Calculates the area of a rectangle given its width and height.

  • perimeterOfRectangle(width: number, height: number): number
    Calculates the perimeter of a rectangle given its width and height.

  • areaOfEllipse(a: number, b: number): number
    Calculates the area of an ellipse given its semi-major and semi-minor axes.

  • surfaceAreaOfSphere(r: number): number
    Calculates the surface area of a sphere given its radius.

  • volumeOfSphere(r: number): number
    Calculates the volume of a sphere given its radius.

  • surfaceAreaOfCylinder(r: number, h: number): number
    Calculates the surface area of a cylinder given its radius and height.

  • volumeOfCylinder(r: number, h: number): number
    Calculates the volume of a cylinder given its radius and height.

Algebra

  • factorial(n: number): number
    Calculates the factorial of a number.

  • permutation(n: number, r: number): number
    Calculates the permutation of n objects taken r at a time.

  • combination(n: number, r: number): number
    Calculates the combination of n objects taken r at a time.

  • log(value: number, base: number): number
    Calculates the logarithm of a value with a given base.

  • ln(value: number): number
    Calculates the natural logarithm (base e) of a value.

Financial

  • simplifiedInterest(C: number, r: number, t: number): number
    Calculates the future value of money using simple interest.

  • compoundInterest(C: number, r: number, n: number, t: number): number
    Calculates the future value of money using compound interest.

  • exponentialGrowth(P: number, r: number, t: number): number
    Calculates the amount after exponential growth.

  • exponentialDecay(P: number, r: number, t: number): number
    Calculates the amount after exponential decay.

Conversion

  • decimalToBinary(num: number): string
    Converts a decimal number to binary.

  • decimalToOctal(num: number): string
    Converts a decimal number to octal.

  • decimalToHex(num: number): string
    Converts a decimal number to hexadecimal.

Vector Operations

  • distanceBetweenPoints(x1: number, y1: number, x2: number, y2: number): number
    Calculates the distance between two points in a 2D space.

  • centroid(x1: number, y1: number, x2: number, y2: number, x3: number, y3: number)
    Calculates the centroid of three points in a 2D space.

Contributing

Contributions are welcome! Please feel free to submit a Pull Request or open an issue.

  1. Fork the repository
  2. Create a new branch (git checkout -b feature-branch)
  3. Commit your changes (git commit -am 'Add new feature')
  4. Push to the branch (git push origin feature-branch)
  5. Open a Pull Request

License

This project is licensed under the MIT License - see the LICENSE file for details.

Acknowledgements

Thanks to the developers of TypeScript, Jest, and Husky.

Contact

For any inquiries or feedback, please contact Alperen Talaslıoğlu.