Toolkit for math calculations.
Project description
Mathhunt Library
Mathhunt is a lightweight Python library designed for quick and efficient mathematical computations. It provides functions for calculating the volume and area of various geometric shapes, as well as distances between points in a Cartesian coordinate system.
Table of Contents
Features
- Volume Calculations: Calculate the volume of shapes like cubes, spheres, cylinders, and more.
- Area Calculations: Calculate the area of shapes such as circles, triangles, rectangles, and polygons.
- Distance Calculations: Compute distances between points in a Cartesian coordinate system.
- Error Handling: Comprehensive error handling to ensure valid input types and values.
- Mathematical Functions: Use all mathematical functions required.
- Visualization: Creates some figures in 2D format. 3D modelling is in progress and was not already implemented.
Installation
pip install mathhunt
Usage
You should import module that you need to use from mathhunt
For example you need to use sinus function. You should situate
from mathhunt import functions
print(functions.sinus(45, "deg"))
Here you can see 2 arguments
Volume-calculation
- The volume function calculates the volume of various 3D shapes based on the provided shape type and corresponding metrics. It supports multiple geometric shapes and ensures input validation for accurate calculations.
Parameters
*args (float)
: A variable-length argument list representing the necessary metrics for the specified shape (e.g., radius, height, side length). The number of arguments required depends on the shape type.
type (str)
: A string that specifies the type of shape for which the volume is to be calculated. Supported types include:
'parallelepiped' 'cube' 'cylinder' 'sphere' 'cone' 'pyramid' 'tetrahedron' 'octahedron' 'icosahedron' Returns float: The calculated volume of the specified shape. Raises TypeError:
If any of the input metrics (*args) are not numbers (either int or float). If the type parameter is not a string. ValueError:
If the specified shape type is invalid (not one of the supported types). If the number of arguments does not match the expected count for the specified shape type. If any of the provided metrics are non-positive (less than or equal to zero).
Examples of usage
Calculate the volume of a cube with side length 3 volume_cube = volume(3, type='cube') # Returns: 27.0
Calculate the volume of a cylinder with radius 2 and height 5 volume_cylinder = volume(2, 5, type='cylinder') # Returns: 25.12
Calculate the volume of a sphere with radius 4 volume_sphere = volume(4, type='sphere') # Returns: 268.08
Invalid usage example
volume_invalid = volume(2, 3, type='invalid_shape')
Raises ValueError
Square-calculation
square(*args: float, type: str) -> float
Calculate the area of various 2D shapes (and surface area of a sphere).
Arguments:
*args(float) – Metrics for the shape, depends ontype.type(str) – Shape type. Supported values:"quadrate"– requires 1 argument: side"rectangle"– requires 2 arguments: width, height"triangle_h"– requires 2 arguments: base, height"triangle_s"– requires 3 arguments: side a, side b, side c (Heron’s formula)"circle"– requires 1 argument: radius"trapezoid"– requires 3 arguments: base a, base b, height"rhombus"– requires 2 arguments: diagonal d1, diagonal d2"parallelogram"– requires 2 arguments: base, height"sector"– requires 2 arguments: angle (deg), radius"ellipse"– requires 2 arguments: half-axis a, half-axis b"polygon"– requires 3 arguments: n (sides), inscribed circle radius, side length"sphere"– requires 1 argument: radius (returns surface area)
Returns:
- (float) – area of the specified shape
Raises:
TypeError– if inputs are not numbers ortypeis not a stringValueError– if shape type is invalid, wrong number of arguments, or non-positive metrics
Examples:
square(5, type="quadrate") # → 25
square(3, 4, type="rectangle") # → 12
square(6, 8, type="triangle_h") # → 24
square(3, type="circle") # → 28.26
square(5, 7, 9, type="triangle_s")# → 15.59 (Heron’s formula)
square(10, type="sphere") # → 1256.0
Area-calculation
- The square function calculates the area of various 2D shapes based on the specified shape type and corresponding metrics. This function is designed to handle multiple geometric shapes and includes robust input validation for accurate area calculations.
Parameters
*args (float):
A variable-length argument list that represents the necessary metrics for the specified shape (e.g., side lengths, radius). The number of arguments required varies depending on the shape type.
type (str):
A string that specifies the type of shape for which the area is to be calculated. Supported types include:
'quadrate' 'rectangle' 'triangle_h' (triangle with base and height) 'triangle_s' (triangle with three sides) 'circle' 'trapezoid' 'rhombus' 'parallelogram' 'sector' 'ellipse' 'polygon' 'sphere' (note: typically, spheres are 3D; area may refer to the surface area calculation) Returns float: The function returns the calculated area of the specified shape. Raises TypeError:
If any of the input metrics (*args) are not numeric (i.e., not of type int or float). If the type parameter is not a string. ValueError:
If the specified shape type is invalid (not one of the recognized types). If the number of provided arguments does not match the expected count for the specified shape type. If any of the provided metrics are non-positive (i.e., less than or equal to zero).
Example of usage
Calculate the area of a square with side length 4 area_square = square(4, type='quadrate') # Expected output: 16.0
Calculate the area of a rectangle with width 3 and height 5 area_rectangle = square(3, 5, type='rectangle') # Expected output: 15.0
Calculate the area of a triangle with base 4 and height 3 area_triangle_h = square(4, 3, type='triangle_h') # Expected output: 6.0
Calculate the area of a circle with radius 2 area_circle = square(2, type='circle') # Expected output: 12.56
Invalid usage example area_invalid = square(3, type='invalid_shape')
This will raise ValueError
Distance-calculation
-Function: distance Calculates various types of distances based on the specified type and dimension.
Parameters
*args (float):
Coordinates or parameters required for distance calculation.
type (str):
The type of distance to calculate. Supported types include: 'dist_points' 'dist_point_line' 'dist_point_plane' 'dist_par_lines' 'dist_par_planes' 'dist_vectors' 'dist_manhattan' 'dist_cos' 'dist_Chebyshev' dimension (str): The dimension of the space in which to calculate the distance. Acceptable values are: '2d' '3d' 'euclid' Returns float: The calculated distance based on the specified type and dimension. Raises TypeError: If any of the arguments are not numeric, or if type or dimension are not strings. ValueError: If the type or dimension is invalid.
Example of usage
Calculate distance between two points in 2D dist = distance(0, 0, 3, 4, type='dist_points', dimension='2d') # Output: 5.0
Calculate Manhattan distance in 3D manhattan_dist = distance(1, 2, 3, 4, 5, 6, type='dist_manhattan', dimension='3d') # Output: 9.0
Function: circumference Calculates the circumference of a circle.
Parameters
r (float):
The radius of the circle. Returns float: The calculated circumference of the circle. Raises TypeError: If the radius is not a number.
Example of usage
Calculate the circumference of a circle with radius 5 circ = circumference(5) # Output: 31.400000000000002
Here's an explanation for the distance, circumference, arc_length, and vector_length functions from your Mathhunt library. This documentation will help users understand the purpose, parameters, return values, and potential exceptions raised by each function.
-Function: arc_length Calculates the length of an arc of a circle.
Parameters
r (float):
The radius of the circle.
rad (float):
The angle in radians. Returns float: The calculated arc length. Raises TypeError: If either r or rad is not a number. ValueError: If the angle is out of the valid range.
Example of usage
Calculate the length of an arc with radius 10 and angle π/2
arc = arc_length(10, 1.5708) # Output: 15.707999999999998
-Function: vector_length Calculates the length of a vector.
Parameters
*args (float):
The components of the vector.
dimension (str):
The dimension of the vector, either '2d' or '3d'. Returns float: The calculated length of the vector. Raises TypeError: If any arguments are not valid numbers or if dimension is not a string. ValueError: If dimension is invalid.
Example of usage
Calculate the length of a 2D vector (3, 4)
vec_length_2d = vector_length(3, 4, dimension='2d') # Output: 5.0
Calculate the length of a 3D vector (1, 2, 2)
vec_length_3d = vector_length(1, 2, 2, dimension='3d') # Output: 3.0
Mathematical-function
Linear and Quadratic Functions
linear_function(a: float, x: float, b: float) -> float
Calculates the value of a linear function ax + b.
Arguments:
a(float) – coefficient of xx(float) – input variableb(float) – constant term
Returns:
- (float) – result of
ax + b
quadratic_function(a: float, x: float, b: float, c: float) -> float
Calculates the value of a quadratic function ax² + bx + c.
Arguments:
a(float) – coefficient of x²x(float) – input variableb(float) – coefficient of xc(float) – constant term
Raises:
ValueErrorifa = 0
Returns:
- (float) – result of
ax² + bx + c
Power and Root Functions
power_function(x: float, n: float) -> float
Raises a number x to the power of n.
Arguments:
x(float) – basen(float) – exponent
Returns:
- (float) – result of
xⁿ
root_function(x: float, n: float) -> float
Calculates the n-th root of a number x.
Arguments:
x(float) – number to extract the root fromn(float) – degree of the root
Raises:
ValueErrorifx < 0
Returns:
- (float) – result of
x^(1/n)
pointer_function(x: float, a: float) -> float
Calculates a raised to the power of x.
Arguments:
x(float) – exponenta(float) – base
Returns:
- (float) – result of
a^x
logarithm_function(a: float, x: float) -> float
Calculates the logarithm of x with base a.
Arguments:
a(float) – base of the logarithm (must be > 0 and != 1)x(float) – argument of the logarithm (must be > 0)
Returns:
- (float) – logₐ(x)
Absolute Value
absolut_function(x: float) -> float
Returns the absolute value of a number.
Arguments:
x(float) – input number
Returns:
- (float) – |x|
Trigonometric Functions (Bradis Table)
sinus(x: float, type: str) -> float
Calculates the sine of an angle.
Arguments:
x(float) – angletype(str) –"deg"for degrees,"rad"for radians
Returns:
- (float) – sin(x)
cosinus(x: float, type: str) -> float
Calculates the cosine of an angle.
Arguments:
x(float) – angletype(str) –"deg"or"rad"
Returns:
- (float) – cos(x)
tangens(x: float, type: str) -> float
Calculates the tangent of an angle.
Arguments:
x(float) – angletype(str) –"deg"or"rad"
Returns:
- (float) – tan(x)
cotangens(x: float, type: str) -> float
Calculates the cotangent of an angle.
Arguments:
x(float) – angletype(str) –"deg"or"rad"
Returns:
- (float) – cot(x)
Inverse Trigonometric Functions
arcsin(x: float) -> float
Finds the arcsine of x using Bradis table.
Arguments:
x(float) – sine value
Returns:
- (float) – angle in degrees
arccos(x: float) -> float
Finds the arccosine of x.
Arguments:
x(float) – cosine value
Returns:
- (float) – angle in degrees
arctan(x: float) -> float
Finds the arctangent of x.
Arguments:
x(float) – tangent value
Returns:
- (float) – angle in degrees
arccot(x: float) -> float
Finds the arccotangent of x.
Arguments:
x(float) – cotangent value
Returns:
- (float) – angle in degrees
Exponential and Hyperbolic Functions
exponential_function(x: float) -> float
Calculates e^x.
Arguments:
x(float) – exponent
Returns:
- (float) – e^x
sinh(x: float) -> float
Calculates the hyperbolic sine of x.
Arguments:
x(float) – input value
Returns:
- (float) – sinh(x)
cosh(x: float) -> float
Calculates the hyperbolic cosine of x.
Arguments:
x(float) – input value
Returns:
- (float) – cosh(x)
tanh(x: float) -> float
Calculates the hyperbolic tangent of x.
Arguments:
x(float) – input value
Returns:
- (float) – tanh(x)
coth(x: float) -> float
Calculates the hyperbolic cotangent of x.
Arguments:
x(float) – input value
Returns:
- (float) – coth(x)
Summation and Product
sigma(i: int, n: int, equation: float = 0.0) -> float
Calculates the sum of integers from i to n.
Arguments:
i(int) – start indexn(int) – end indexequation(float, optional) – initial value (default0.0)
Returns:
- (float) – total sum
sigma_p(i: int, n: int, equation: float = 1.0) -> float
Calculates the product of integers from i to n.
Arguments:
i(int) – start indexn(int) – end indexequation(float, optional) – initial value (default1.0)
Returns:
- (float) – total product
Visualization
In that module you can implement models of 2D figures in the graphical representation.
Example of usage
Draw a rectangle with A=4 and B=2
from functions_viz import *
from core import *
create_rectangle(4, 2, dimension="2d")
show()
As you saw here was used function show() in the end of the code. That is a powerfull instrument that gives us an opportunity to draw several figures in a one plot simultaneuosly.
Example of usage
Draw a rectangle with A=22 and B=12 Draw a circle with r=10
from functions_viz import *
from core import *
create_rectangle(4, 2, dimension="2d")
create_circle(10, dimension="2d")
show()
But you should be careful in usage because all figures are implemented in a queue-tendency. For example that code will cause some trouble because the circle is bigger than square and it gives no space for quadrate to be visible.
from functions_viz import *
from core import *
create_quadrate(2, dimension="2d")
create_circle(10, dimension="2d")
show()
create_quadrate(*args: float, dimension: str)
- Draws a 2D quadrate (square) centered at the origin.
Arguments:
a(float) – input sidedimension(str) – 2d (only)
create_reactangle(*args: float, dimension: str)
- Draws a 2D rectangle centered at the origin.
Arguments:
a(float) – input side Ab(float) – input side Bdimension(str) – 2d (only)
create_circle(*args: float, dimension: str)
- Draws a 2D circle centered at the origin.
Arguments:
r(float) – input radiusdimension(str) – 2d (only)
create_triangle(*args: float, dimension: str)
- Draws a 2D trianle centered at the origin.
Arguments:
a(float) – input length Ab(float) – input length Bc(float) – input length Cdimension(str) – 2d (only)
create_trapezoid(*args: float, dimension: str)
- Draws a 2D trapezoid centered at the origin.
Arguments:
ad(float) – input length ADbc(float) – input length BCab(float) – input length ABcd(float) – input length CDdimension(str) – 2d (only)
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file mathhunt-0.4.0.tar.gz.
File metadata
- Download URL: mathhunt-0.4.0.tar.gz
- Upload date:
- Size: 56.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.9.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
831eb2aa9e80d8f27d873c0939b109a56ec230189f1ab90d4783201e8d7320ec
|
|
| MD5 |
d58ab9f15e5261fcf5084509a6362306
|
|
| BLAKE2b-256 |
3e41a76edf6ede9bd0ed26c2f834fedd7ae48b814f28feda0eb5c308f2c45f8f
|
File details
Details for the file mathhunt-0.4.0-py3-none-any.whl.
File metadata
- Download URL: mathhunt-0.4.0-py3-none-any.whl
- Upload date:
- Size: 55.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.9.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
7b0d3ed4e6456cb52c49defa7fc0e70407ff49416d996d3990ba1bf966c6a230
|
|
| MD5 |
a88503ef2ab244198de060acf160b960
|
|
| BLAKE2b-256 |
937c2ed063c58302a9e0a4e1b3b1cc46c79e09ed54e6795667256925f08a2059
|