<commit_before># MathLibPy

This is a basic math library for Python.

It's a work in progress, but if you're interested in contributing, feel free to contact me at <EMAIL>.

## License

MathLibPy is licensed under the [MIT License (MIT)](LICENSE).

## Requirements

This library uses Python 2.7x, along with Epydoc for documentation.

## Features

* Matrices
    * Arithmetic on matrices
    * Determinants and cofactors
    * Inverses (can handle zeros on main diagonal)
    * Echelon and (row) reduced Echelon form
* Functions
    * Polynomials
    * Trigonometric functions
    * Exponential function, logarithm
        * Arbitrary powers and logarithm bases
    * Function combination and composition (addition, division, etc.)
    * Differentiation
    * Exact function equality test (equal if internal structures equal)
* Sequences
    * Arithmetic and Geometric sequences
    * Generic sequence, takes any Function
* Discrete math
    * Finite Sets
    * Infinite sets
        * Real, Integer and Natural number sets
        * Sets of disjoint ranges (real and integer ranges)
    * Union, intersect, difference
    * Cardinality, subset, proper subset and equality tests
        * Returns different infinities for different infinite sets
* Infinities
    * Comparison of different infinities and with finite numbers
    * Addition, subtraction, multiplication and division
* Irrational numbers from base values (pi, e, etc.)

## Future features

* Matrices
    * Eigenvectors and eigenvalues
    * Diagonalization
* Functions
    * Intelligent function equality test (identities)
    * Find roots and fixed points
    * Limits
    * Integration (symbolic and definite)
    * Find max and min values
    * Taylor and Maclaurin series
    * Multivariate functions
* Discrete math
    * Graphs
        * Directed and undirected
        * Test for acyclicity
        * Minimum spanning trees
        * Searches and shortest paths
        * Relation to digraph conversion and vice versa
    * Sets
        * Power sets and partitions
    * Relations
        * Produce range from domain and codomain
        * Tests for totality, function, surjectivity and injectivity
        * Composition and combination
        * Conversion from total functions on real numbers to Functions
    * Logical statements
        * Parse strings of logical statements
        * Generate truth tables
        * Generate proofs and counter examples
* Abstract algebra
    * Groups (finite)
        * Test if set is group under operator
        * Find identity and inverses of elements
        * Find subgroups
        * Test if two groups are isomorphic
    * Permutations (finite)
        * Test if function is permutation on a finite set
        * Decompose permutation into disjoint cycles
        * Find if permutation is even or odd
        * Compose permutations
        * Find order of permutation
* Number theory
    * Greatest common divisor / lowest common multiple
        * Euclid's algorithm
    * Modular arithmetic
    * Coprime and prime tests
* Sequences
    * Infinite sums
        * Tests for convergence and divergence
* Geometric shapes
    * Circles and ellipses
    * Arbitrary polygons
    * Area, perimeter
    * Solving for angles
    * Finding symmetries
* Random variables
    * Discrete and continuous
    * Expected value, variance, median and mode
    * Arithmetic on variables
* Distributions
    * Binomial, Gaussian, Chi squared, etc.
* Graphics and plotting support
    * Plotting functions
    * Drawing shapes
    * Drawing distributions
    * Drawing graphs
    * Venn diagrams of sets<commit_msg>Add automata and languages to future features in README<commit_after># MathLibPy

This is a basic math library for Python.

It's a work in progress, but if you're interested in contributing, feel free to contact me at <EMAIL>.

## License

MathLibPy is licensed under the [MIT License (MIT)](LICENSE).

## Requirements

This library uses Python 2.7x, along with Epydoc for documentation.

## Features

* Matrices
    * Arithmetic on matrices
    * Determinants and cofactors
    * Inverses (can handle zeros on main diagonal)
    * Echelon and (row) reduced Echelon form
* Functions
    * Polynomials
    * Trigonometric functions
    * Exponential function, logarithm
        * Arbitrary powers and logarithm bases
    * Function combination and composition (addition, division, etc.)
    * Differentiation
    * Exact function equality test (equal if internal structures equal)
* Sequences
    * Arithmetic and Geometric sequences
    * Generic sequence, takes any Function
* Discrete math
    * Finite Sets
    * Infinite sets
        * Real, Integer and Natural number sets
        * Sets of disjoint ranges (real and integer ranges)
    * Union, intersect, difference
    * Cardinality, subset, proper subset and equality tests
        * Returns different infinities for different infinite sets
* Infinities
    * Comparison of different infinities and with finite numbers
    * Addition, subtraction, multiplication and division
* Irrational numbers from base values (pi, e, etc.)

## Future features

* Matrices
    * Eigenvectors and eigenvalues
    * Diagonalization
* Functions
    * Intelligent function equality test (identities)
    * Find roots and fixed points
    * Limits
    * Integration (symbolic and definite)
    * Find max and min values
    * Taylor and Maclaurin series
    * Multivariate functions
* Discrete math
    * Graphs
        * Directed and undirected
        * Test for acyclicity
        * Minimum spanning trees
        * Searches and shortest paths
        * Relation to digraph conversion and vice versa
    * Sets
        * Power sets and partitions
    * Relations
        * Produce range from domain and codomain
        * Tests for totality, function, surjectivity and injectivity
        * Composition and combination
        * Conversion from total functions on real numbers to Functions
    * Logical statements
        * Parse strings of logical statements
        * Generate truth tables
        * Generate proofs and counter examples
    * Automata and Languages
        * Finite State Automata
            * Nondeterministic and deterministic
        * Pushdown Automata
        * Grammars
        * Conversion between automata types, minimization, equality tests
* Abstract algebra
    * Groups (finite)
        * Test if set is group under operator
        * Find identity and inverses of elements
        * Find subgroups
        * Test if two groups are isomorphic
    * Permutations (finite)
        * Test if function is permutation on a finite set
        * Decompose permutation into disjoint cycles
        * Find if permutation is even or odd
        * Compose permutations
        * Find order of permutation
* Number theory
    * Greatest common divisor / lowest common multiple
        * Euclid's algorithm
    * Modular arithmetic
    * Coprime and prime tests
* Sequences
    * Infinite sums
        * Tests for convergence and divergence
* Geometric shapes
    * Circles and ellipses
    * Arbitrary polygons
    * Area, perimeter
    * Solving for angles
    * Finding symmetries
* Random variables
    * Discrete and continuous
    * Expected value, variance, median and mode
    * Arithmetic on variables
* Distributions
    * Binomial, Gaussian, Chi squared, etc.
* Graphics and plotting support
    * Plotting functions
    * Drawing shapes
    * Drawing distributions
    * Drawing graphs
    * Venn diagrams of sets
{'fraction_non_alphanumeric': 0.046635576282478344, 'fraction_numerical': 0.0005329780146568954, 'mean_word_length': 2.8101522842639595, 'pattern_counts': {'":': 0, '<': 5, '<?xml version=': 0, '>': 5, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '4833296', 'n_tokens_mistral': 1946, 'n_tokens_neox': 1781, 'n_words': 822}