@zushah/chalkboard 2.3.0 → 3.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +292 -231
- package/LICENSE.md +328 -21
- package/README.md +115 -98
- package/dist/Chalkboard.d.ts +291 -96
- package/dist/Chalkboard.d.ts.map +1 -1
- package/dist/Chalkboard.js +8357 -4871
- package/dist/Chalkboard.js.map +1 -1
- package/dist/Chalkboard.min.js +1 -0
- package/package.json +24 -28
package/CHANGELOG.md
CHANGED
|
@@ -1,273 +1,334 @@
|
|
|
1
1
|
# Chalkboard changelog
|
|
2
|
-
All notable changes of every update of
|
|
2
|
+
All notable changes of every update of Chalkboard are recorded in this file.
|
|
3
|
+
|
|
4
|
+
## [v3.0.0 Euler](https://www.github.com/Zushah/Chalkboard/releases/tag/v3.0.0) - 03/02/2026
|
|
5
|
+
The fifteenth release of Chalkboard.
|
|
6
|
+
Commits: [`v2.4.0...v3.0.0`](https://www.github.com/Zushah/Chalkboard/compare/v2.4.0...v3.0.0)
|
|
7
|
+
- Added `REGISTRY` and `REGISTER` which enable the inclusion of custom functions in `real.parse` and `comp.parse`.
|
|
8
|
+
- Added `diff.init` which defines ordinary differential equations (both singles and systems).
|
|
9
|
+
- Added `diff.solve` which calculates the solutions of differential equations using either Euler's method, the midpoint method, Heun's method, Ralston's method, or the fourth-order Runge-Kutta method, and added `diff.solveAdaptive` which calculates the solutions of differential equations using the Dormand-Prince (or Runge–Kutta–Fehlberg) method.
|
|
10
|
+
- Added `diff.at`, `diff.closestIndex`, `diff.component`, `diff.derivative`, `diff.error`, `diff.phase`, `diff.sample`, and `diff.toScalarSeries` which calculate various different helping utilities for differential equations and their solutions.
|
|
11
|
+
- Added `diff.exponential`, `diff.linear1`, `diff.linear2`, `diff.logistic`, and `diff.separable` which define basic types of differential equations.
|
|
12
|
+
- Added `diff.harmonic`, `diff.harmonicDamped`, `diff.harmonicForced`, `diff.massSpringDamper`, `diff.pendulum`, `diff.pendulumDrag`, and `diff.pendulumDriven` which define differential equations for classic physics demonstrations.
|
|
13
|
+
- Added `diff.Kepler2D` and `diff.Kepler3D` which define differential equations for Kepler two-body problems in 2D and 3D, respectively, and added `diff.LotkaVolterra` which defines a differential equation for a Lotka-Volterra predator-prey model, and added `diff.SIS`, `diff.SIR`, and `diff.SEIR` which define differential equations for SIR (susceptible-infected-recovered), SIS (susceptible-infected-susceptible), and SEIR (susceptible-exposed-infected-recovered) epidemic models, respectively.
|
|
14
|
+
- Added `diff.Bernoulli` which defines a Bernoulli equation, `diff.BesselJ` which defines a Bessel function of the first kind, `diff.BesselI` which defines a modified Bessel equation of the first kind, `diff.Duffing` which defines a Duffing attractor, `diff.Gompertz` which defines a Gompertz equation, and `diff.Lorenz` which defines a Lorenz attractor.
|
|
15
|
+
- Added `plot.ode` which plots solutions of differential equations.
|
|
16
|
+
- Added `calc.fft`, `calc.ifft`, `calc.dft`, `calc.idft`, `calc.rfft`, `calc.irfft`, `calc.fftfreq`, `calc.fftshift`, and `calc.ifftshift` which calculate various different Fourier transform operations on arrays.
|
|
17
|
+
- Added `calc.iFourier` which calculates the inverse Fourier transform of a `ChalkboardFunction` and thus corresponds to `calc.Fourier`.
|
|
18
|
+
- Added `numb.convert` which can convert numbers from and to various measurement units of length, area, mass, volume, pressure, time, and temperature.
|
|
19
|
+
- Added `comp.sin`, `comp.cos`, `comp.tan`, and `comp.exp` which calculates those functions for complex-valued inputs.
|
|
20
|
+
- Added `real.erf` which calculates the error function and `real.Gamma` which calculates the gamma function.
|
|
21
|
+
- Added `matr.Cholesky` which calculates the Cholesky decomposition of a matrix.
|
|
22
|
+
- Added `comp.isApproxEqual`, `comp.isEqual`, `comp.isInverse`, `comp.isNormalized`, `comp.isZero`, `matr.isApproxEqual`, `quat.isApproxEqual`, `quat.isEqual`, `quat.isInverse`, `quat.isNormalized`, `quat.isZero`, `tens.isApproxEqual`, `tens.isZero`, and `vect.isApproxEqual`.
|
|
23
|
+
- Added tests in the `./test/` folder for all of the near-700 functions of Chalkboard.
|
|
24
|
+
- Added Terser to manually generate the `./dist/Chalkboard.min.js` file whereas before it was automatically generated by jsDelivr's Terser.
|
|
25
|
+
- Removed `PARSEPREFIX` because of the total rewrite of `real.parse` and `comp.parse` which now use the new `REGISTRY` and `REGISTER`.
|
|
26
|
+
- Removed `LOGO` because the Chalkboard logo is now rendered with an SVG and a Python script.
|
|
27
|
+
- Removed `README` (the function in the code, not the file in the repo) because it was useless.
|
|
28
|
+
- Removed ESLint and Prettier because I don't like them.
|
|
29
|
+
- Changed TypeScript build target to ES2023 instead of ES5.
|
|
30
|
+
- Changed everything regarding `ChalkboardFunction` (so in other words, essentially all of the `calc`, `comp`, `real`, and `plot` namespaces, as well as a handful of functions in the `numb`, `stat`, `trig`, and `vect` namespaces) such that they now use native JavaScript function references (with a `rule` property) instead of string-based definitions (with a `definition` property). Furthermore, the `type` properties of functions (e.g. `"expl"`, `"pola"`, `"curv"`, etc.) are now automatically configured instead of needing to be explicitly provided. They have also been renamed to be more descriptive (e.g. `"expl"` changed to `"scalar2d"`, `"mult"` changed to `"scalar3d"`, `"curv"` changed to `"curve2d"`, etc.). Additionally, `ChalkboardVectorField` has been removed and replaced with `ChalkboardFunction` (that has a `type` of `"vector2d"`, `"vector3d"`, and `"vector4d"`), although both `real.define` and `vect.field` are still available to be used to define vector fields. Also, the `field` property has been added to `ChalkboardFunction` to explicitly differentiate functions in the field of real numbers from functions in the field of complex numbers ("`field`" here refers to the algebraic structure, not the function type of vector fields). Talking about functions in the field of complex numbers, they can now be defined with `comp.define` in two different ways: two functions of two variables that denote the real and imaginary parts of the function as they take two real numbers and return a real number (old feature) or one function of one variable that denotes an explicit complex function as it takes one complex number and returns a complex number (new feature). Lastly, since the function types are automatically configured based on the function signatures instead of explicitly inputted by strings, the `config` parameter of `plot.definition` has two new options which are `isInverse` and `isPolar` (and `plot.dfdx`, `plot.d2fdx2`, and `plot.fxdx` also have the `isInverse` option) so that plotting inverse and polar functions is still available with the new `"scalar2d"` function type that replaced the `"inve"` and `"pola"` types.
|
|
31
|
+
- Changed everything regarding `real.parse` and `comp.parse` such that they will now be able to support advanced algebraic expression handling. The user can input mathematical expressions such as `"(2x - 3y)^4"` and the parser will automatically expand and simplify them algebraically. These functions can evaluate expressions using a `values` object to substitute variables, for example, inputting the expression `"(2x - 3y)^4"` and `values: { x: 1, y: 2 }` will return `256`. Additionally, the abstract syntax tree (AST) of any expression can be obtained by the `returnAST` option, a JSON string of an AST can be obtained by the `returnJSON` option, or a string of the corresponding LaTeX code can be generated by the `returnLaTeX` option. There is also fine-tunable control over numerical precision using the `roundTo` option, which rounds results to the specified place value, such as using `roundTo: 0.0001` to ensure that `"1 - 0.9"` yields `0.1` instead of floating-point imprecision. Custom functions are now registered explicitly using `REGISTER`, replacing the previous string-based `PARSEPREFIX` system. This makes it more secure and flexible, allowing for user-defined functions to be safely added and used within mathematical expressions evaluated by Chalkboard's parsers. The registered functions are centralized in `REGISTRY`.
|
|
32
|
+
- Changed `bool.parse` to have `values`, `returnAST`, `returnJSON`, and `returnLaTeX` options like `real.parse` and `comp.parse` do, and changed `bool.isEqual`, `bool.Karnaugh`, `bool.mapping`, `bool.minimize`, `bool.toCNF`, and `bool.toDNF` to accomodate the changes to `bool.parse`.
|
|
33
|
+
- Changed every function in the `numb` namespace to have thorough error-checking.
|
|
34
|
+
- Changed `calc.Fourier`, `trig.arcsin`, `trig.arccos`, `trig.arctan`, `trig.arccsc`, `trig.arcsec`, and `trig.arccot` to run faster.
|
|
35
|
+
- Changed `matr.isIdentity`, `matr.isLowerTriangular`, `matr.isUpperTriangular`, `matr.isOrthogonal`, `matr.isZero`, `vect.isNormalized`, `vect.isOrthogonal`, `vect.isParallel`, and `vect.isZero` to use the new `matr.isApproxEqual` or `vect.isApproxEqual`.
|
|
36
|
+
- Changed the license of Chalkboard from MIT to MPL-2.0.
|
|
37
|
+
- Fixed `comp.toString` and `quat.toString` which were not working as intended when the imaginary parts were 1 or -1.
|
|
38
|
+
- Fixed `matr.isDiagonal` which was actually returning false for diagonal matrices.
|
|
39
|
+
- Fixed `numb.compositeArr` which was treating 0 and 1 as composites, fixed `numb.Fibonacci` which had a broken recursive calculation, fixed `numb.Gaussian` which had an ambiguous height parameter and an incorrect Box-Muller transform, fixed `numb.Euler` which was not using distinct prime factors, fixed `numb.prime` which was not handling small indices correctly, fixed `numb.gcd` and `numb.lcm` which were not using absolute values, fixed `numb.toDecimal` which was not preserving the original sign of a number, fixed `numb.map` which was not avoiding division by zero, and fixed `numb.toFraction` to have an iterative maximum.
|
|
40
|
+
- Fixed `stat.regression` which was incorrect in its calculation of power regressions.
|
|
41
|
+
- Fixed `stat.mul` and `stat.cummul` which were always returning 0.
|
|
42
|
+
- Fixed `stat.mean` which was always returning 0 for its calculation of geometric means.
|
|
43
|
+
- Fixed `trig.arccos`, `trig.arccsc`, and `trig.arcsec` which were broken due to singularities and undefined domains.
|
|
44
|
+
|
|
45
|
+
## [v2.4.0 Noether](https://www.github.com/Zushah/Chalkboard/releases/tag/v2.4.0) - 04/28/2025
|
|
46
|
+
The fourteenth release of Chalkboard.
|
|
47
|
+
Commits: [`v2.3.0...v2.4.0`](https://www.github.com/Zushah/Chalkboard/compare/v2.3.0...v2.4.0)
|
|
48
|
+
- Added `vect.modeConfig` which can change the input/output mode of the `vect` commands so that they can accept and return vectors (`"vector"` mode, which is the default), arrays (`"array"` mode), typed arrays (`"float32array"` or `"float64array"` modes), matrices (`"matrix"` mode), strings (`"string"` mode), or JSON strings (`"json"` mode).
|
|
49
|
+
- Added `abal.monoid`, `abal.isMonoid`, and `abal.isSubmonoid` which defines and checks for the algebraic structures known as monoids.
|
|
50
|
+
- Added `abal.toTypedArray`, `comp.toTypedArray`, `matr.toTypedArray`, `quat.toTypedArray`, `tens.toTypedArray` and `vect.toTypedArray` which convert sets, structures, complex numbers, matrices, quaternions, tensors, and vectors to six different possible typed arrays.
|
|
51
|
+
- Added `real.zero` which defines a zero function of a specified type.
|
|
52
|
+
- Removed `comp.zero` and `quat.zero` because they were redundant as `comp.init` and `quat.init` already have their feature.
|
|
53
|
+
- Changed `trig.cos` and `trig.sin` to be roughly ten times faster.
|
|
54
|
+
- Changed `abal.group`, `abal.ring`, and `abal.field` to no longer use presets for sets and operations.
|
|
55
|
+
- Changed `abal.isSubset`, `abal.isSubgroup`, `abal.isSubring`, and `abal.isSubfield` to be able to work with infinite sets.
|
|
56
|
+
- Changed `abal.isClosed`, `abal.isEqual`, and `abal.direct` to be able to work with monoids.
|
|
57
|
+
- Changed `bool.modeConfig` to be able to work case-insensitively.
|
|
58
|
+
- Changed `matr.zero` and `tens.zero` to input the size of the zero matrix or tensor directly instead of inputting another matrix or tensor.
|
|
59
|
+
- Changed all of the `vect` commands to work with the new `vect.modeConfig` feature.
|
|
60
|
+
- Changed `APPLY` and some of the `calc`, `matr`, `quat`, and `real` commands to work with the new `vect.modeConfig` feature.
|
|
61
|
+
- Changed all of the `plot` commands to work with the new `plot.getContext` fix.
|
|
62
|
+
- Fixed `plot.PARSED_CONTEXT` by replacing it with `plot.getContext` as it was throwing false errors when no HTML `<canvas>` element was available even if the `plot` commands weren't in use.
|
|
63
|
+
- Fixed `numb.isRational` which was giving inaccurate results because it was able to turn any floating-point number into a fraction even if it's mathematically inaccurate.
|
|
3
64
|
|
|
4
65
|
## [v2.3.0 Boole](https://www.github.com/Zushah/Chalkboard/releases/tag/v2.3.0) - 04/14/2025
|
|
5
|
-
The thirteenth release of
|
|
66
|
+
The thirteenth release of Chalkboard.
|
|
6
67
|
Commits: [`v2.2.0...v2.3.0`](https://www.github.com/Zushah/Chalkboard/compare/v2.2.0...v2.3.0)
|
|
7
|
-
- Added `I` which calculates the number i
|
|
8
|
-
- Added boolean algebra functionalities with the new `bool` category containing 23 commands, which are mentioned below
|
|
9
|
-
- Added `bool.AND`, `bool.OR`, `bool.XOR`, `bool.COND`, `bool.CONV`, `bool.BICOND`, `bool.NOT`, `bool.NAND`, `bool.NOR`, `bool.NCOND`, `bool.NCONV`, and `bool.NBICOND` which are boolean operations that act on two or more values
|
|
10
|
-
- Added `bool.parse` which evaluates or simplifies a boolean expression, `bool.minimize` which minimizes a boolean expression, and `bool.isEqual` which checks if two boolean expressions are logically equivalent
|
|
11
|
-
- Added `bool.truthTable` which calculates the truth table for one or more boolean operators
|
|
12
|
-
- Added `bool.Karnaugh` which defines the Karnaugh map (or K-map) for a boolean expression and `bool.mapping` which defines a function that maps inputs to outputs based on truth tables
|
|
13
|
-
- Added `bool.primeImplicants` which calculates the prime implicants of a boolean expression using its Karnaugh map
|
|
14
|
-
- Added `bool.toCNF` which converts a boolean expression to conjunctive normal form and `bool.toDNF` which converts a boolean expression to disjunctive normal form
|
|
15
|
-
- Added `bool.modeConfig` which can change the mode of the `bool` commands to output either `1`/`0` (which is `"binary"` mode) or `true`/`false` (which is `"boolean"` mode)
|
|
16
|
-
- Added `numb.toBinary`, `numb.toHexadecimal`, and `numb.toOctal` which convert numbers from decimal representation to binary, hexadecimal, or octal representations
|
|
17
|
-
- Added `numb.toDecimal` which converts a number from another representation back to decimal representation
|
|
18
|
-
- Added `real.absolute`, `real.add`, `real.compose`, `real.div`, `real.mul`, `real.negate`, `real.pow` `real.reciprocate`, `real.scl`, `real.sub`, and `real.translate` which calculate the absolute value of a function, the addition of two functions, the composition of two functions, the division of two functions, the multiplication of two functions, the negation of a function, the exponentation of a function, the reciprocation of a function, the scalar multiplication of a function, the subtraction of two functions, and the translation of a function, respectively
|
|
19
|
-
- Added `real.polynomial` which defines a polynomial function based on inputted coefficients, and added `real.randomPolynomial` which defines a polynomial of a specified degree with random coefficients
|
|
20
|
-
- Changed `real.define` to be written more efficiently
|
|
21
|
-
- Changed `stat.random` to have its first parameter be the length of the array instead of the last
|
|
22
|
-
- Fixed `comp.pow`, `matr.norm`, `matr.normsq`, `plot.definition`, and `stat.regression` which were throwing type errors because of the updated `real.pow` function which can now handle not only numbers but also functions
|
|
23
|
-
- Fixed `comp.zero`, `quat.zero`, and `vect.zero` which were unnecessarily using erasing operations
|
|
68
|
+
- Added `I` which calculates the number i.
|
|
69
|
+
- Added boolean algebra functionalities with the new `bool` category containing 23 commands, which are mentioned below.
|
|
70
|
+
- Added `bool.AND`, `bool.OR`, `bool.XOR`, `bool.COND`, `bool.CONV`, `bool.BICOND`, `bool.NOT`, `bool.NAND`, `bool.NOR`, `bool.NCOND`, `bool.NCONV`, and `bool.NBICOND` which are boolean operations that act on two or more values.
|
|
71
|
+
- Added `bool.parse` which evaluates or simplifies a boolean expression, `bool.minimize` which minimizes a boolean expression, and `bool.isEqual` which checks if two boolean expressions are logically equivalent.
|
|
72
|
+
- Added `bool.truthTable` which calculates the truth table for one or more boolean operators.
|
|
73
|
+
- Added `bool.Karnaugh` which defines the Karnaugh map (or K-map) for a boolean expression and `bool.mapping` which defines a function that maps inputs to outputs based on truth tables.
|
|
74
|
+
- Added `bool.primeImplicants` which calculates the prime implicants of a boolean expression using its Karnaugh map.
|
|
75
|
+
- Added `bool.toCNF` which converts a boolean expression to conjunctive normal form and `bool.toDNF` which converts a boolean expression to disjunctive normal form.
|
|
76
|
+
- Added `bool.modeConfig` which can change the mode of the `bool` commands to output either `1`/`0` (which is `"binary"` mode) or `true`/`false` (which is `"boolean"` mode).
|
|
77
|
+
- Added `numb.toBinary`, `numb.toHexadecimal`, and `numb.toOctal` which convert numbers from decimal representation to binary, hexadecimal, or octal representations.
|
|
78
|
+
- Added `numb.toDecimal` which converts a number from another representation back to decimal representation.
|
|
79
|
+
- Added `real.absolute`, `real.add`, `real.compose`, `real.div`, `real.mul`, `real.negate`, `real.pow` `real.reciprocate`, `real.scl`, `real.sub`, and `real.translate` which calculate the absolute value of a function, the addition of two functions, the composition of two functions, the division of two functions, the multiplication of two functions, the negation of a function, the exponentation of a function, the reciprocation of a function, the scalar multiplication of a function, the subtraction of two functions, and the translation of a function, respectively.
|
|
80
|
+
- Added `real.polynomial` which defines a polynomial function based on inputted coefficients, and added `real.randomPolynomial` which defines a polynomial of a specified degree with random coefficients.
|
|
81
|
+
- Changed `real.define` to be written more efficiently.
|
|
82
|
+
- Changed `stat.random` to have its first parameter be the length of the array instead of the last.
|
|
83
|
+
- Fixed `comp.pow`, `matr.norm`, `matr.normsq`, `plot.definition`, and `stat.regression` which were throwing type errors because of the updated `real.pow` function which can now handle not only numbers but also functions.
|
|
84
|
+
- Fixed `comp.zero`, `quat.zero`, and `vect.zero` which were unnecessarily using erasing operations.
|
|
24
85
|
|
|
25
86
|
## [v2.2.0 Galois](https://www.github.com/Zushah/Chalkboard/releases/tag/v2.2.0) - 04/07/2025
|
|
26
|
-
The twelfth release of
|
|
87
|
+
The twelfth release of Chalkboard.
|
|
27
88
|
Commits: [`v2.1.0...v2.2.0`](https://www.github.com/Zushah/Chalkboard/compare/v2.1.0...v2.2.0)
|
|
28
|
-
- Added abstract algebra functionalities with the new `abal` category containing 76 commands, so only a few notable ones are mentioned below
|
|
29
|
-
- Added `abal.set` which defines a mathematical set, as well as `abal.Z` which defines the set of integers or the set of integers modulo n, `abal.Q` which defines the set of rational numbers, `abal.R` which defines the set of real numbers, and `abal.C` which defines the set of complex numbers or the set of nth roots of unity
|
|
30
|
-
- Added `abal.union`, `abal.intersection`, `abal.complement`, `abal.difference`, `abal.symmetricDifference`, `abal.Cartesian`, `abal.powerSet`, `abal.isSubset`, and `abal.isSuperset` which respectively calculate the union of two sets, the intersection of two sets, the complement of a set, the difference of two sets, the symmetric difference of two sets, the Cartesian product of two sets, the power set of a set, whether or not a set is a subset of another set, and whether or not a set is a superset of another set
|
|
31
|
-
- Added `abal.group`, `abal.ring`, and `abal.field` which define the algebraic structures known as groups, rings, and fields
|
|
32
|
-
- Added `abal.direct` which calculates the direct sum or direct product of two algebraic structures
|
|
33
|
-
- Added `abal.cosets` and `abal.quotient` which respectively calculate the cosets or quotient structure of two inputted algebraic structures
|
|
34
|
-
- Added `abal.homomorphism`, `abal.endomorphism`, `abal.isomorphism`, `abal.automorphism`, `abal.idmorphism`, and `abal.invmorphism` which define various types of morphisms between one or two algebraic structures
|
|
35
|
-
- Added `abal.compose` which calculates the composition morphism of two given morphisms
|
|
36
|
-
- Added `abal.image`, `abal.preimage`, and `abal.kernel` which respectively calculate the image, preimage, or kernel of a given morphism
|
|
37
|
-
- Added `abal.cardinality` which calculates the cardinality of a set or the set of a structure
|
|
38
|
-
- Added `abal.isEqual` which checks if two sets, structures, or morphisms are equal
|
|
39
|
-
- Added `abal.copy` which creates a copy of a set, structure, or morphism
|
|
40
|
-
- Added `abal.toArray`, `abal.toMatrix`, `abal.toObject`, `abal.toString`, `abal.toTensor`, and `abal.toVector` which convert sets or structures to arrays, matricies, objects, strings, tensors, or vectors, and `abal.print` prints a set or structure in the console
|
|
41
|
-
- Added `stat.Bayes` which calculates the posterior probability given prior probabilities
|
|
42
|
-
- Added `stat.expected` which calculates the expected value of an array given the probabilities of its elements
|
|
43
|
-
- Added `stat.normal` and `stat.inormal` which respectively calculate the values of the standard normal distribution and cumulative distribution function of the standard normal distribution
|
|
44
|
-
- Added `stat.resampling` which resamples an array either by the bootstrap or jackknife methods
|
|
45
|
-
- Added `stat.interpolate` which linearly or quadratically interpolates missing elements in an array
|
|
46
|
-
- Added `stat.absolute` which takes the absolute value of the elements of an array, `stat.negate` which negates the elements of an array, `stat.add` which adds the elements of two arrays, `stat.sub` which subtracts the elements of two arrays, `stat.dot` which calculates the dot product of two arrays, `stat.scl` which scales the elements of an array by a given number, `stat.sum` which calculates the sum of the elements of an array, `stat.mul` which calculates the product of the elements of an array, and `stat.reverse` which reverses the elements of an array
|
|
47
|
-
- Added `stat.cumsum`, `stat.cummul`, `stat.cummax`, and `stat.cummin` which respectively calculate the cumululative sum, product, maximum, and minimum of an array
|
|
48
|
-
- Added `stat.meanMoving` and `stat.meanWeighted` which respectively calculate the moving and weighted averages of an array
|
|
49
|
-
- Added `stat.covariance` which calculates the covariance of two arrays and `stat.correlationCoefficient` which calculates the correlation coefficient of two arrays
|
|
50
|
-
- Added `stat.interquartileRange` which calculates the interquartile range of an array
|
|
51
|
-
- Added `stat.zscored` which standardizes the elements of an array by their mean and standard deviation
|
|
52
|
-
- Added `stat.pad` which pads an array by a given element to a given length
|
|
89
|
+
- Added abstract algebra functionalities with the new `abal` category containing 76 commands, so only a few notable ones are mentioned below.
|
|
90
|
+
- Added `abal.set` which defines a mathematical set, as well as `abal.Z` which defines the set of integers or the set of integers modulo n, `abal.Q` which defines the set of rational numbers, `abal.R` which defines the set of real numbers, and `abal.C` which defines the set of complex numbers or the set of nth roots of unity.
|
|
91
|
+
- Added `abal.union`, `abal.intersection`, `abal.complement`, `abal.difference`, `abal.symmetricDifference`, `abal.Cartesian`, `abal.powerSet`, `abal.isSubset`, and `abal.isSuperset` which respectively calculate the union of two sets, the intersection of two sets, the complement of a set, the difference of two sets, the symmetric difference of two sets, the Cartesian product of two sets, the power set of a set, whether or not a set is a subset of another set, and whether or not a set is a superset of another set.
|
|
92
|
+
- Added `abal.group`, `abal.ring`, and `abal.field` which define the algebraic structures known as groups, rings, and fields.
|
|
93
|
+
- Added `abal.direct` which calculates the direct sum or direct product of two algebraic structures.
|
|
94
|
+
- Added `abal.cosets` and `abal.quotient` which respectively calculate the cosets or quotient structure of two inputted algebraic structures.
|
|
95
|
+
- Added `abal.homomorphism`, `abal.endomorphism`, `abal.isomorphism`, `abal.automorphism`, `abal.idmorphism`, and `abal.invmorphism` which define various types of morphisms between one or two algebraic structures.
|
|
96
|
+
- Added `abal.compose` which calculates the composition morphism of two given morphisms.
|
|
97
|
+
- Added `abal.image`, `abal.preimage`, and `abal.kernel` which respectively calculate the image, preimage, or kernel of a given morphism.
|
|
98
|
+
- Added `abal.cardinality` which calculates the cardinality of a set or the set of a structure.
|
|
99
|
+
- Added `abal.isEqual` which checks if two sets, structures, or morphisms are equal.
|
|
100
|
+
- Added `abal.copy` which creates a copy of a set, structure, or morphism.
|
|
101
|
+
- Added `abal.toArray`, `abal.toMatrix`, `abal.toObject`, `abal.toString`, `abal.toTensor`, and `abal.toVector` which convert sets or structures to arrays, matricies, objects, strings, tensors, or vectors, and `abal.print` prints a set or structure in the console.
|
|
102
|
+
- Added `stat.Bayes` which calculates the posterior probability given prior probabilities.
|
|
103
|
+
- Added `stat.expected` which calculates the expected value of an array given the probabilities of its elements.
|
|
104
|
+
- Added `stat.normal` and `stat.inormal` which respectively calculate the values of the standard normal distribution and cumulative distribution function of the standard normal distribution.
|
|
105
|
+
- Added `stat.resampling` which resamples an array either by the bootstrap or jackknife methods.
|
|
106
|
+
- Added `stat.interpolate` which linearly or quadratically interpolates missing elements in an array.
|
|
107
|
+
- Added `stat.absolute` which takes the absolute value of the elements of an array, `stat.negate` which negates the elements of an array, `stat.add` which adds the elements of two arrays, `stat.sub` which subtracts the elements of two arrays, `stat.dot` which calculates the dot product of two arrays, `stat.scl` which scales the elements of an array by a given number, `stat.sum` which calculates the sum of the elements of an array, `stat.mul` which calculates the product of the elements of an array, and `stat.reverse` which reverses the elements of an array.
|
|
108
|
+
- Added `stat.cumsum`, `stat.cummul`, `stat.cummax`, and `stat.cummin` which respectively calculate the cumululative sum, product, maximum, and minimum of an array.
|
|
109
|
+
- Added `stat.meanMoving` and `stat.meanWeighted` which respectively calculate the moving and weighted averages of an array.
|
|
110
|
+
- Added `stat.covariance` which calculates the covariance of two arrays and `stat.correlationCoefficient` which calculates the correlation coefficient of two arrays.
|
|
111
|
+
- Added `stat.interquartileRange` which calculates the interquartile range of an array.
|
|
112
|
+
- Added `stat.zscored` which standardizes the elements of an array by their mean and standard deviation.
|
|
113
|
+
- Added `stat.pad` which pads an array by a given element to a given length.
|
|
53
114
|
- Added `stat.unique` which deduplicates an array of numbers, arrays, objects, etc.
|
|
54
|
-
- Added `matr.toSet`, `stat.toSet` and `tens.toSet` to convert matrices, arrays, and tensors to sets
|
|
55
|
-
- Added `numb.toFraction` to convert decimals to fractions and `numb.isRational` to check if a number is rational
|
|
56
|
-
- Changed `APPLY` to work for sets and algebraic structures introduced in the `abal` category
|
|
57
|
-
- Changed `stat.change` and `stat.chiSquared` to be written more succinctly
|
|
58
|
-
- Changed `stat.confidenceInterval` to use an adjustable confidence level
|
|
59
|
-
- Changed `stat.toMatrix` to be able to use only one parameter for the size of the matrix instead of requiring two
|
|
60
|
-
- Changed `matr.rotator` to be faster
|
|
61
|
-
- Changed `comp.toString` to output 1, i, -1, or -i when 1+0i, 0+1i, -1+0i, or 0-1i are inputted
|
|
62
|
-
- Fixed `comp.div` which was broken for who knows how long because it was using the wrong formula for some reason
|
|
63
|
-
- Fixed `matr.resize` which was always returning zero matrices
|
|
64
|
-
- Fixed `matr.zero` which was unnecessarily using erasing operations
|
|
65
|
-
- Fixed `tens.init` which had an expression assigned to itself
|
|
66
|
-
- Fixed `geom.rectangularprismA` thanks to @gyang0's contribution [here](https://github.com/Zushah/Chalkboard/pull/5)
|
|
115
|
+
- Added `matr.toSet`, `stat.toSet` and `tens.toSet` to convert matrices, arrays, and tensors to sets.
|
|
116
|
+
- Added `numb.toFraction` to convert decimals to fractions and `numb.isRational` to check if a number is rational.
|
|
117
|
+
- Changed `APPLY` to work for sets and algebraic structures introduced in the `abal` category.
|
|
118
|
+
- Changed `stat.change` and `stat.chiSquared` to be written more succinctly.
|
|
119
|
+
- Changed `stat.confidenceInterval` to use an adjustable confidence level.
|
|
120
|
+
- Changed `stat.toMatrix` to be able to use only one parameter for the size of the matrix instead of requiring two.
|
|
121
|
+
- Changed `matr.rotator` to be faster.
|
|
122
|
+
- Changed `comp.toString` to output 1, i, -1, or -i when 1+0i, 0+1i, -1+0i, or 0-1i are inputted.
|
|
123
|
+
- Fixed `comp.div` which was broken for who knows how long because it was using the wrong formula for some reason.
|
|
124
|
+
- Fixed `matr.resize` which was always returning zero matrices.
|
|
125
|
+
- Fixed `matr.zero` which was unnecessarily using erasing operations.
|
|
126
|
+
- Fixed `tens.init` which had an expression assigned to itself.
|
|
127
|
+
- Fixed `geom.rectangularprismA` thanks to @gyang0's contribution [here](https://github.com/Zushah/Chalkboard/pull/5).
|
|
67
128
|
|
|
68
129
|
## [v2.1.0 Seki](https://www.github.com/Zushah/Chalkboard/releases/tag/v2.1.0) - 01/22/2024
|
|
69
|
-
The eleventh release of
|
|
130
|
+
The eleventh release of Chalkboard.
|
|
70
131
|
Commits: [`v2.0.0...v2.1.0`](https://www.github.com/Zushah/Chalkboard/compare/v2.0.0...v2.1.0)
|
|
71
|
-
- Added a total of 26 `.isFoo` commands in the `matr`, `tens`, and `vect` categories that check if a matrix, tensor, or vector fulfills a particular property (for example, `matr.isDiagonal` checks if a matrix is a diagonal matrix)
|
|
72
|
-
- Added `matr.norm`, `matr.normsq`, and `matr.normalize` to calculate the norm of a matrix or normalize a matrix
|
|
73
|
-
- Added `matr.eigenvalue` and `matr.eigenvector` to calculate the dominant eigenvalue and eigenvector of a matrix
|
|
74
|
-
- Added `matr.diagonal`, `matr.lowerTriangular`, and `matr.upperTriangular` to initialize a diagonal or triangular matrix
|
|
75
|
-
- Added `matr.lowerBinomial`, `matr.symmetricBinomial`, `matr.upperBinomial`, `matr.lowerShift`, and `matr.upperShift` to replace the removed `matr.binomial` and `matr.shift` commands
|
|
76
|
-
- Added `matr.perm` to calculate the permanent of a matrix
|
|
77
|
-
- Added `comp.toMatrix` and `quat.toMatrix` to convert a complex number or a quaternion to a matrix
|
|
78
|
-
- Added `comp.argBetween` to calculate the argument between two complex numbers
|
|
79
|
-
- Added `numb.isApproxEqual` to check if two numbers are approximately equal
|
|
80
|
-
- Added `numb.mod` to calculate the mathematically-correct modulo (instead of the symmetric modulo which is what the `%` operator does)
|
|
81
|
-
- Added `numb.roundTo` to round a number to the nearest inputted positional index (or place value)
|
|
82
|
-
- Removed `matr.binomial` and `matr.shift
|
|
83
|
-
- Changed nearly all of the `matr` commands to work significantly faster for 2x2, 3x3, and 4x4 matrices (for example, multiplications are about 67% faster, inversions are about 85% faster, and determinants are about 95% faster) when compared with previous versions of Chalkboard
|
|
84
|
-
- Changed `matr.adjugate`, `matr.cofactor`, `matr.push`, `matr.pull`, and `matr.toVector` to use a zero-based index instead of a one-based index
|
|
85
|
-
- Changed `matr.concat`, `matr.push`, `matr.pull`, `matr.toVector`, and `vect.toMatrix` to use an `axis` parameter instead of a `type` parameter
|
|
86
|
-
- Changed `matr.push`, `matr.pull`, and `matr.toVector` to have their `rowORcol` parameter be renamed as `index
|
|
87
|
-
- Changed `calc.fds` and `calc.fnds` to work with the changes in `matr.toVector
|
|
88
|
-
- Changed `matr.reduce` to be renamed as `matr.Gaussian
|
|
89
|
-
- Changed nearly all of the `vect` commands to use the new `vect.isDimensionOf` command instead of a ridiculous amount of `typeof` operators
|
|
90
|
-
- Changed `tens.rank` to use the length of `tens.size` instead of doing its own calculation
|
|
91
|
-
- Changed `tens.empty`, `tens.fill`, `tens.random`, and `tens.resize` to use a ternary operator instead of an `if` statement to check whether a sequence of arguments or an array is inputted into their `size` parameters
|
|
92
|
-
- Changed `numb.Bernoullian` to not have an unnecessary `if` statement for its optional parameter
|
|
132
|
+
- Added a total of 26 `.isFoo` commands in the `matr`, `tens`, and `vect` categories that check if a matrix, tensor, or vector fulfills a particular property (for example, `matr.isDiagonal` checks if a matrix is a diagonal matrix).
|
|
133
|
+
- Added `matr.norm`, `matr.normsq`, and `matr.normalize` to calculate the norm of a matrix or normalize a matrix.
|
|
134
|
+
- Added `matr.eigenvalue` and `matr.eigenvector` to calculate the dominant eigenvalue and eigenvector of a matrix.
|
|
135
|
+
- Added `matr.diagonal`, `matr.lowerTriangular`, and `matr.upperTriangular` to initialize a diagonal or triangular matrix.
|
|
136
|
+
- Added `matr.lowerBinomial`, `matr.symmetricBinomial`, `matr.upperBinomial`, `matr.lowerShift`, and `matr.upperShift` to replace the removed `matr.binomial` and `matr.shift` commands.
|
|
137
|
+
- Added `matr.perm` to calculate the permanent of a matrix.
|
|
138
|
+
- Added `comp.toMatrix` and `quat.toMatrix` to convert a complex number or a quaternion to a matrix.
|
|
139
|
+
- Added `comp.argBetween` to calculate the argument between two complex numbers.
|
|
140
|
+
- Added `numb.isApproxEqual` to check if two numbers are approximately equal.
|
|
141
|
+
- Added `numb.mod` to calculate the mathematically-correct modulo (instead of the symmetric modulo which is what the `%` operator does).
|
|
142
|
+
- Added `numb.roundTo` to round a number to the nearest inputted positional index (or place value).
|
|
143
|
+
- Removed `matr.binomial` and `matr.shift`.
|
|
144
|
+
- Changed nearly all of the `matr` commands to work significantly faster for 2x2, 3x3, and 4x4 matrices (for example, multiplications are about 67% faster, inversions are about 85% faster, and determinants are about 95% faster) when compared with previous versions of Chalkboard.
|
|
145
|
+
- Changed `matr.adjugate`, `matr.cofactor`, `matr.push`, `matr.pull`, and `matr.toVector` to use a zero-based index instead of a one-based index.
|
|
146
|
+
- Changed `matr.concat`, `matr.push`, `matr.pull`, `matr.toVector`, and `vect.toMatrix` to use an `axis` parameter instead of a `type` parameter.
|
|
147
|
+
- Changed `matr.push`, `matr.pull`, and `matr.toVector` to have their `rowORcol` parameter be renamed as `index`.
|
|
148
|
+
- Changed `calc.fds` and `calc.fnds` to work with the changes in `matr.toVector`.
|
|
149
|
+
- Changed `matr.reduce` to be renamed as `matr.Gaussian`.
|
|
150
|
+
- Changed nearly all of the `vect` commands to use the new `vect.isDimensionOf` command instead of a ridiculous amount of `typeof` operators.
|
|
151
|
+
- Changed `tens.rank` to use the length of `tens.size` instead of doing its own calculation.
|
|
152
|
+
- Changed `tens.empty`, `tens.fill`, `tens.random`, and `tens.resize` to use a ternary operator instead of an `if` statement to check whether a sequence of arguments or an array is inputted into their `size` parameters.
|
|
153
|
+
- Changed `numb.Bernoullian` to not have an unnecessary `if` statement for its optional parameter.
|
|
93
154
|
|
|
94
155
|
## [v2.0.0 al-Khwarizmi](https://www.github.com/Zushah/Chalkboard/releases/tag/v2.0.0) - 01/08/2024
|
|
95
|
-
The tenth release of
|
|
156
|
+
The tenth release of Chalkboard.
|
|
96
157
|
Commits: [`v1.7.0...v2.0.0`](https://www.github.com/Zushah/Chalkboard/compare/v1.7.0...v2.0.0)
|
|
97
|
-
- Rewrote everything in TypeScript, applied ESLint and Prettier, and remade the website with TypeDoc
|
|
98
|
-
- Added `APPLY` which applies a callback function in an element-wise manner on a complex number, matrix, quaternion, tensor, or vector
|
|
99
|
-
- Added the `vect` category which merges the `vec2`, `vec3`, and `vec4` categories into one
|
|
100
|
-
- Added `VERSION` and `VERSIONALIAS` which return the installed version and its alias, respectively
|
|
101
|
-
- Removed the `vec2`, `vec3`, and `vec4` categories
|
|
102
|
-
- Removed `quat.fromVector` because it's been replaced by `vect.toQuaternion
|
|
103
|
-
- Removed `plot.vec3` because it was weird
|
|
104
|
-
- Changed everything due to the TypeScript rewrite and the vector categories merge
|
|
105
|
-
- Changed all of the `.new` commands to be renamed as `.init
|
|
106
|
-
- Changed `real.function` to be renamed as `real.define`, `comp.function` to be renamed as `comp.define`, and `plot.function` to be renamed as `plot.definition
|
|
107
|
-
- Changed `LOGO` to draw the logo as a circle instead of a square
|
|
108
|
-
- Changed `matr.mulvec` to be renamed as `matr.mulVector
|
|
109
|
-
- Fixed `matr.mulVector` which didn't work when the rows of the matrix equaled the dimension of the vector
|
|
110
|
-
- Discontinued the Processsing.js edition of the library, meaning it will no longer be updated and it will only be available on the Khan Academy release (it will no longer be available on GitHub)
|
|
158
|
+
- Rewrote everything in TypeScript, applied ESLint and Prettier, and remade the website with TypeDoc.
|
|
159
|
+
- Added `APPLY` which applies a callback function in an element-wise manner on a complex number, matrix, quaternion, tensor, or vector.
|
|
160
|
+
- Added the `vect` category which merges the `vec2`, `vec3`, and `vec4` categories into one.
|
|
161
|
+
- Added `VERSION` and `VERSIONALIAS` which return the installed version and its alias, respectively.
|
|
162
|
+
- Removed the `vec2`, `vec3`, and `vec4` categories.
|
|
163
|
+
- Removed `quat.fromVector` because it's been replaced by `vect.toQuaternion`.
|
|
164
|
+
- Removed `plot.vec3` because it was weird.
|
|
165
|
+
- Changed everything due to the TypeScript rewrite and the vector categories merge.
|
|
166
|
+
- Changed all of the `.new` commands to be renamed as `.init`.
|
|
167
|
+
- Changed `real.function` to be renamed as `real.define`, `comp.function` to be renamed as `comp.define`, and `plot.function` to be renamed as `plot.definition`.
|
|
168
|
+
- Changed `LOGO` to draw the logo as a circle instead of a square.
|
|
169
|
+
- Changed `matr.mulvec` to be renamed as `matr.mulVector`.
|
|
170
|
+
- Fixed `matr.mulVector` which didn't work when the rows of the matrix equaled the dimension of the vector.
|
|
171
|
+
- Discontinued the Processsing.js edition of the library, meaning it will no longer be updated and it will only be available on the Khan Academy release (it will no longer be available on GitHub).
|
|
111
172
|
|
|
112
173
|
## [v1.7.0 Descartes](https://www.github.com/Zushah/Chalkboard/releases/tag/v1.7.0) - 01/01/2024
|
|
113
|
-
The ninth release of
|
|
174
|
+
The ninth release of Chalkboard.
|
|
114
175
|
Commits: [`v1.6.0...v1.7.0`](https://www.github.com/Zushah/Chalkboard/compare/v1.6.0...v1.7.0)
|
|
115
|
-
- Added tensors (multidimensional multidimensional matrices, or n-dimensional arrays) with 29 commands in the new `tens` category
|
|
116
|
-
- Added 12 more matrix commands: copying, resizing, five new primitive matrices (exchange, shift, binomial, Hilbert, Lehmer), concatenating, multiplying with vectors, Kronecker sum, Kronecker product, and converting to a tensor
|
|
117
|
-
- Added `.copy` commands for complex numbers, quaternions, and vectors
|
|
118
|
-
- Added `stat.toTensor` to convert an array to a tensor
|
|
119
|
-
- Added quaternion division with `quat.div
|
|
120
|
-
- Added `PARSEPREFIX` as a Chalkboard global which makes it easier to add custom functions to Chalkboard functions than the `init` parameter in `real.parse` and `comp.parse
|
|
121
|
-
- Added `CONTEXT` as a Chalkboard global to replace the removed `plot.CONTEXT
|
|
122
|
-
- Removed `plot.CONTEXT
|
|
123
|
-
- Changed all of the `plot` commands, `LOGO`, and `geom.line3D` to use the new `CONTEXT` constant instead of `plot.CONTEXT
|
|
124
|
-
- Changed all of the `plot` commands to use `config.x` and `config.y` to determine their position on the canvas instead of `config.origin
|
|
125
|
-
- Changed all of the `plot` commands' initialization of the `config` parameter to be two less lines long
|
|
126
|
-
- Changed `matr.plot` to have a `config.domain` option
|
|
127
|
-
- Changed `real.parse` and `comp.parse` to no longer have an `init` parameter
|
|
128
|
-
- Changed many of the `comp` and `quat` commands to accept regular numbers (not just complex numbers and quaternions) as inputs
|
|
129
|
-
- Changed `comp.new` and `quat.new` to be able to accept only one argument as the real part and fill the imaginary part(s) with zeroes
|
|
130
|
-
- Changed `stat.eq`, `stat.ineq`, `stat.lt`, and `stat.gt` to use `Array.isArray` instead of `.constructor === Array
|
|
131
|
-
- Changed `stat.toVector` to have an `index` parameter to change the index of the array to start at when defining a vector
|
|
132
|
-
- Changed all of the integration commands (`calc.fxdx`, `calc.fxydxdy`, `calc.fds`, `calc.frds`, `calc.fnds`, and `calc.fzdz`) to use `inf` and `sup` for the bounds in their parameters instead of `a`, `b`, `c`, and `d
|
|
133
|
-
- Changed `matr.new` to accept one array of arrays (already-constructed matrix) as an input instead of only multiple arrays (to use as rows to construct a matrix)
|
|
134
|
-
- Changed the order of `matr.random`'s parameters
|
|
135
|
-
- Changed `matr.fill`, `matr.empty`, and `matr.random` to make square matrices with the size inputted into the `rows` parameter if nothing is inputted into the `cols` parameter
|
|
136
|
-
- Changed `matr.LUdecomp` and `matr.QRdecomp` to use `matr.fill` instead of `matr.zero` composed with `matr.empty
|
|
137
|
-
- Fixed `plot.matr` which hadn't been working for who knows how long because of a critical misspelling (`vec2.plot` instead of `plot.vec2`)
|
|
138
|
-
- Fixed (rewrote) `numb.binomial` which kept giving "callstack size exceeded" errors for some reason
|
|
139
|
-
- Fixed (rewrote) `matr.QRdecomp` thanks to [@JentGent](https://www.github.com/JentGent)'s [implementation](https://www.github.com/JentGent/linalg/blob/main/linalg.js#L519)
|
|
176
|
+
- Added tensors (multidimensional multidimensional matrices, or n-dimensional arrays) with 29 commands in the new `tens` category.
|
|
177
|
+
- Added 12 more matrix commands: copying, resizing, five new primitive matrices (exchange, shift, binomial, Hilbert, Lehmer), concatenating, multiplying with vectors, Kronecker sum, Kronecker product, and converting to a tensor.
|
|
178
|
+
- Added `.copy` commands for complex numbers, quaternions, and vectors.
|
|
179
|
+
- Added `stat.toTensor` to convert an array to a tensor.
|
|
180
|
+
- Added quaternion division with `quat.div`.
|
|
181
|
+
- Added `PARSEPREFIX` as a Chalkboard global which makes it easier to add custom functions to Chalkboard functions than the `init` parameter in `real.parse` and `comp.parse`.
|
|
182
|
+
- Added `CONTEXT` as a Chalkboard global to replace the removed `plot.CONTEXT`.
|
|
183
|
+
- Removed `plot.CONTEXT`.
|
|
184
|
+
- Changed all of the `plot` commands, `LOGO`, and `geom.line3D` to use the new `CONTEXT` constant instead of `plot.CONTEXT`.
|
|
185
|
+
- Changed all of the `plot` commands to use `config.x` and `config.y` to determine their position on the canvas instead of `config.origin`.
|
|
186
|
+
- Changed all of the `plot` commands' initialization of the `config` parameter to be two less lines long.
|
|
187
|
+
- Changed `matr.plot` to have a `config.domain` option.
|
|
188
|
+
- Changed `real.parse` and `comp.parse` to no longer have an `init` parameter.
|
|
189
|
+
- Changed many of the `comp` and `quat` commands to accept regular numbers (not just complex numbers and quaternions) as inputs.
|
|
190
|
+
- Changed `comp.new` and `quat.new` to be able to accept only one argument as the real part and fill the imaginary part(s) with zeroes.
|
|
191
|
+
- Changed `stat.eq`, `stat.ineq`, `stat.lt`, and `stat.gt` to use `Array.isArray` instead of `.constructor === Array`.
|
|
192
|
+
- Changed `stat.toVector` to have an `index` parameter to change the index of the array to start at when defining a vector.
|
|
193
|
+
- Changed all of the integration commands (`calc.fxdx`, `calc.fxydxdy`, `calc.fds`, `calc.frds`, `calc.fnds`, and `calc.fzdz`) to use `inf` and `sup` for the bounds in their parameters instead of `a`, `b`, `c`, and `d`.
|
|
194
|
+
- Changed `matr.new` to accept one array of arrays (already-constructed matrix) as an input instead of only multiple arrays (to use as rows to construct a matrix).
|
|
195
|
+
- Changed the order of `matr.random`'s parameters.
|
|
196
|
+
- Changed `matr.fill`, `matr.empty`, and `matr.random` to make square matrices with the size inputted into the `rows` parameter if nothing is inputted into the `cols` parameter.
|
|
197
|
+
- Changed `matr.LUdecomp` and `matr.QRdecomp` to use `matr.fill` instead of `matr.zero` composed with `matr.empty`.
|
|
198
|
+
- Fixed `plot.matr` which hadn't been working for who knows how long because of a critical misspelling (`vec2.plot` instead of `plot.vec2`).
|
|
199
|
+
- Fixed (rewrote) `numb.binomial` which kept giving "callstack size exceeded" errors for some reason.
|
|
200
|
+
- Fixed (rewrote) `matr.QRdecomp` thanks to [@JentGent](https://www.github.com/JentGent)'s [implementation](https://www.github.com/JentGent/linalg/blob/main/linalg.js#L519).
|
|
140
201
|
|
|
141
202
|
## [v1.6.0 Fermat](https://www.github.com/Zushah/Chalkboard/releases/tag/v1.6.0) - 12/25/2023
|
|
142
|
-
The eighth release of
|
|
203
|
+
The eighth release of Chalkboard.
|
|
143
204
|
Commits: [`v1.5.0...v1.6.0`](https://www.github.com/Zushah/Chalkboard/compare/v1.5.0...v1.6.0)
|
|
144
|
-
- Added a new type of function: the inverse function (`type` of `"inve"`)
|
|
145
|
-
- Added `stat.regression` to calculate different types of statistical regression models (linear, polynomial, exponential, etc.)
|
|
146
|
-
- Added `plot.CONTEXT` which determines the `CanvasRenderingContext2D` to use for plots
|
|
147
|
-
- Added LU decomposition and QR decomposition for matrices with `matr.LUdecomp` and `matr.QRdecomp
|
|
148
|
-
- Added `matr.push` and `matr.pull` to add or remove rows or columns from matrices
|
|
149
|
-
- Added `matr.fill` to create a new matrix with a single value for all of the elements
|
|
150
|
-
- Added more commands for generating random numbers: `numb.exponential`, `numb.Bernoullian`, and `numb.Poissonian
|
|
151
|
-
- Added `numb.Goldbach` to return an even number as a sum of two prime numbers
|
|
152
|
-
- Added `numb.Euler` to calculate Euler's totient function on a number
|
|
153
|
-
- Added `stat.shuffle` to randomly shuffle an array and `stat.subsets` to return all of the possible subsets of an array
|
|
154
|
-
- Changed all of the `plot` commands to use an optional `config` object parameter to configure their customizations (size, color, domain, etc.) instead of separate parameters for each of them
|
|
155
|
-
- Changed `real.function`, `real.val`, `calc.dfdx`, `calc.d2fdx2`, and `calc.fxdx` to accomodate the new `"inve"` function type
|
|
156
|
-
- Changed all of the `plot` commands, the `LOGO` command, and the `geom.line3D` command to use the new `plot.CONTEXT` value instead of `ctx` and `canvas
|
|
157
|
-
- Changed `matr.empty` and `matr.random` to use `rows` and `cols` as parameters for the size of the matrix instead of `dimension`, and renamed the `dimension` parameter for `matr.identity` to `size
|
|
158
|
-
- Changed `real.nrt` to be renamed as `real.root` (so `stat.mean` had to be changed since it was used there), and changed the `n` parameter in `comp.root` to be renamed as `index
|
|
159
|
-
- Changed `numb.random` to use its default values only if the parameters are undefined instead of if the parameters are falsy
|
|
160
|
-
- Changed `matr.new` to use its `matrix` parameter instead of leaving it as declared but unused
|
|
161
|
-
- Changed `comp.d2fdz2` which was incorrectly named as `comp.df2dz2
|
|
162
|
-
- Fixed (rewrote) `numb.Gaussian` which basically didn't work at all
|
|
163
|
-
- Fixed `real.pow` which returned `NaN` for 0 raised to the power of 0
|
|
164
|
-
- Fixed the default domain for `plot.function` which was incorrectly using the domain for domain colorings instead of normal graphs
|
|
205
|
+
- Added a new type of function: the inverse function (`type` of `"inve"`).
|
|
206
|
+
- Added `stat.regression` to calculate different types of statistical regression models (linear, polynomial, exponential, etc.).
|
|
207
|
+
- Added `plot.CONTEXT` which determines the `CanvasRenderingContext2D` to use for plots.
|
|
208
|
+
- Added LU decomposition and QR decomposition for matrices with `matr.LUdecomp` and `matr.QRdecomp`.
|
|
209
|
+
- Added `matr.push` and `matr.pull` to add or remove rows or columns from matrices.
|
|
210
|
+
- Added `matr.fill` to create a new matrix with a single value for all of the elements.
|
|
211
|
+
- Added more commands for generating random numbers: `numb.exponential`, `numb.Bernoullian`, and `numb.Poissonian`.
|
|
212
|
+
- Added `numb.Goldbach` to return an even number as a sum of two prime numbers.
|
|
213
|
+
- Added `numb.Euler` to calculate Euler's totient function on a number.
|
|
214
|
+
- Added `stat.shuffle` to randomly shuffle an array and `stat.subsets` to return all of the possible subsets of an array.
|
|
215
|
+
- Changed all of the `plot` commands to use an optional `config` object parameter to configure their customizations (size, color, domain, etc.) instead of separate parameters for each of them.
|
|
216
|
+
- Changed `real.function`, `real.val`, `calc.dfdx`, `calc.d2fdx2`, and `calc.fxdx` to accomodate the new `"inve"` function type.
|
|
217
|
+
- Changed all of the `plot` commands, the `LOGO` command, and the `geom.line3D` command to use the new `plot.CONTEXT` value instead of `ctx` and `canvas`.
|
|
218
|
+
- Changed `matr.empty` and `matr.random` to use `rows` and `cols` as parameters for the size of the matrix instead of `dimension`, and renamed the `dimension` parameter for `matr.identity` to `size`.
|
|
219
|
+
- Changed `real.nrt` to be renamed as `real.root` (so `stat.mean` had to be changed since it was used there), and changed the `n` parameter in `comp.root` to be renamed as `index`.
|
|
220
|
+
- Changed `numb.random` to use its default values only if the parameters are undefined instead of if the parameters are falsy.
|
|
221
|
+
- Changed `matr.new` to use its `matrix` parameter instead of leaving it as declared but unused.
|
|
222
|
+
- Changed `comp.d2fdz2` which was incorrectly named as `comp.df2dz2`.
|
|
223
|
+
- Fixed (rewrote) `numb.Gaussian` which basically didn't work at all.
|
|
224
|
+
- Fixed `real.pow` which returned `NaN` for 0 raised to the power of 0.
|
|
225
|
+
- Fixed the default domain for `plot.function` which was incorrectly using the domain for domain colorings instead of normal graphs.
|
|
165
226
|
|
|
166
227
|
## [v1.5.0 Cauchy](https://www.github.com/Zushah/Chalkboard/releases/tag/v1.5.0) - 12/18/2023
|
|
167
|
-
The seventh release of
|
|
228
|
+
The seventh release of Chalkboard.
|
|
168
229
|
Commits: [`v1.4.0...v1.5.0`](https://www.github.com/Zushah/Chalkboard/compare/v1.4.0...v1.5.0)
|
|
169
|
-
- Added Chalkboard as an npm package, so now it can be used on the server-side just like the client side
|
|
170
|
-
- Added `comp.function`, `comp.parse`, and `comp.val` to define, parse, and evaluate complex functions
|
|
171
|
-
- Added `calc.dfdz`, `calc.d2fdz2`, and `calc.fzdz` to calculate the first derivatives, second derivatives, and antiderivatives of complex functions
|
|
172
|
-
- Added approximations of functions using Taylor series with `calc.Taylor` and `plot.Taylor
|
|
173
|
-
- Added `comp.pow` to calculate the exponentiation of a complex number
|
|
174
|
-
- Added `comp.root` to calculate the roots of a complex number
|
|
175
|
-
- Added `comp.invert` (calculates the multiplicative inverse of a complex number) to replace the functionality of `comp.reciprocate
|
|
176
|
-
- Removed `stat.gte` and `stat.lte` and respectively incorporated their functionalities into `stat.gt` and `stat.lt
|
|
177
|
-
- Changed `comp.reciprocate` to return the reciprocals of the components of a complex number instead of returning the multiplicative inverse of a complex number
|
|
178
|
-
- Changed `stat.gt` and `stat.lt` to have `includeEnd` parameters which determines whether the conditional they check for is "greater/less than" (input false) or "greater/less than or equal to" (input true)
|
|
179
|
-
- Changed `plot.barplot` and `plot.lineplot` to use the new functionalities of `stat.gt` and `stat.lt` instead of the removed `stat.gte` and `stat.lte
|
|
180
|
-
- Changed `comp.Re` and `comp.Im` to respectively return the real and imaginary components of complex functions, too, instead of only the real and imaginary components of complex numbers
|
|
181
|
-
- Changed `stat.toObject` to return an object with its properties named based on the array's index instead of the array's element
|
|
182
|
-
- Changed `trig.arctan2` to use `Math.atan` instead of `trig.arctan` to be faster
|
|
183
|
-
- Changed the name of `calc.frdt` to `calc.frds
|
|
184
|
-
- Changed `plot.function` to accept complex functions as inputs to plot their domain colorings
|
|
185
|
-
- Fixed the error messages in `calc.dfdrt` which were misspelled
|
|
186
|
-
- Fixed `plot.field` to include the upper bounds in its domain
|
|
230
|
+
- Added Chalkboard as an npm package, so now it can be used on the server-side just like the client side.
|
|
231
|
+
- Added `comp.function`, `comp.parse`, and `comp.val` to define, parse, and evaluate complex functions.
|
|
232
|
+
- Added `calc.dfdz`, `calc.d2fdz2`, and `calc.fzdz` to calculate the first derivatives, second derivatives, and antiderivatives of complex functions.
|
|
233
|
+
- Added approximations of functions using Taylor series with `calc.Taylor` and `plot.Taylor`.
|
|
234
|
+
- Added `comp.pow` to calculate the exponentiation of a complex number.
|
|
235
|
+
- Added `comp.root` to calculate the roots of a complex number.
|
|
236
|
+
- Added `comp.invert` (calculates the multiplicative inverse of a complex number) to replace the functionality of `comp.reciprocate`.
|
|
237
|
+
- Removed `stat.gte` and `stat.lte` and respectively incorporated their functionalities into `stat.gt` and `stat.lt`.
|
|
238
|
+
- Changed `comp.reciprocate` to return the reciprocals of the components of a complex number instead of returning the multiplicative inverse of a complex number.
|
|
239
|
+
- Changed `stat.gt` and `stat.lt` to have `includeEnd` parameters which determines whether the conditional they check for is "greater/less than" (input false) or "greater/less than or equal to" (input true).
|
|
240
|
+
- Changed `plot.barplot` and `plot.lineplot` to use the new functionalities of `stat.gt` and `stat.lt` instead of the removed `stat.gte` and `stat.lte`.
|
|
241
|
+
- Changed `comp.Re` and `comp.Im` to respectively return the real and imaginary components of complex functions, too, instead of only the real and imaginary components of complex numbers.
|
|
242
|
+
- Changed `stat.toObject` to return an object with its properties named based on the array's index instead of the array's element.
|
|
243
|
+
- Changed `trig.arctan2` to use `Math.atan` instead of `trig.arctan` to be faster.
|
|
244
|
+
- Changed the name of `calc.frdt` to `calc.frds`.
|
|
245
|
+
- Changed `plot.function` to accept complex functions as inputs to plot their domain colorings.
|
|
246
|
+
- Fixed the error messages in `calc.dfdrt` which were misspelled.
|
|
247
|
+
- Fixed `plot.field` to include the upper bounds in its domain.
|
|
187
248
|
|
|
188
249
|
## [v1.4.0 Herschel](https://www.github.com/Zushah/Chalkboard/releases/tag/v1.4.0) - 12/11/2023
|
|
189
|
-
The sixth release of
|
|
250
|
+
The sixth release of Chalkboard.
|
|
190
251
|
Commits: [`v1.3.1...v1.4.0`](https://www.github.com/Zushah/Chalkboard/compare/v1.3.1...v1.4.0)
|
|
191
|
-
- Added many new commands for arrays: creating an array of random numbers, calculating different types of the norm (and the squared norm) of an array, calculating the normalized array, calculating the array that has the numbers that are equal to, greater than (or equal to), less than (or equal to), or some compound inequality of another number or array, calculating the skewness and kurtosis of an array, calculating the different quartiles of an array, and converting an array to a vector, matrix, object, string, or printing it in the console
|
|
192
|
-
- Added `plot.barplot`, `plot.lineplot`, and `plot.scatterplot` to plot arrays of data
|
|
193
|
-
- Added `.constrain` commands for numbers, arrays, complex numbers, quaternions, vectors, and matrices to constrain their values within a range
|
|
194
|
-
- Added `trig.arctan2` to accurately calculate the angle between a vector and the positive x-axis
|
|
195
|
-
- Added `numb.sum` and `numb.mul` for the calculation of specified summation and product formulae
|
|
196
|
-
- Added `.reflect` and `.refract` commands for vectors to calculate reflection and refraction vectors
|
|
197
|
-
- Added `real.pingpong` to calculate the ping-pong function
|
|
198
|
-
- Added `geom.mid` to calculate the midpoint between two multidimensional points
|
|
199
|
-
- Changed all of the `plot` commands to return an array of data containing all of the ordered pairs of plotted points instead of returning a string with details on what was plotted and how
|
|
200
|
-
- Changed `real.parse` to have an optional command to input initializing code before the return function
|
|
201
|
-
- Changed `vec2.ang`, `comp.arg`, and `comp.ln` to use `trig.arctan2` instead of `trig.arctan
|
|
202
|
-
- Changed `real.Heaviside`, `real.Dirac`, `real.ramp`, and `real.rect` to have parameters for the `edge` (the starting point) and the `scl` (scalar multiplication) of their respective functions
|
|
203
|
-
- Changed `comp.new` and `quat.new` to have a `type` property (like the `.new` commands for vectors) that's always set to `"comp"` and `"quat"`, respectively
|
|
204
|
-
- Changed `geom.dist` and `geom.distsq` to be written with loops instead of array methods
|
|
205
|
-
- Changed `calc.frdt` to also work for three-dimensional (instead of only two-dimensional) vector fields and parametric curves
|
|
206
|
-
- Fixed `calc.dfrdt` which didn't work due to a slight misspelling in an `if()` statement
|
|
252
|
+
- Added many new commands for arrays: creating an array of random numbers, calculating different types of the norm (and the squared norm) of an array, calculating the normalized array, calculating the array that has the numbers that are equal to, greater than (or equal to), less than (or equal to), or some compound inequality of another number or array, calculating the skewness and kurtosis of an array, calculating the different quartiles of an array, and converting an array to a vector, matrix, object, string, or printing it in the console.
|
|
253
|
+
- Added `plot.barplot`, `plot.lineplot`, and `plot.scatterplot` to plot arrays of data.
|
|
254
|
+
- Added `.constrain` commands for numbers, arrays, complex numbers, quaternions, vectors, and matrices to constrain their values within a range.
|
|
255
|
+
- Added `trig.arctan2` to accurately calculate the angle between a vector and the positive x-axis.
|
|
256
|
+
- Added `numb.sum` and `numb.mul` for the calculation of specified summation and product formulae.
|
|
257
|
+
- Added `.reflect` and `.refract` commands for vectors to calculate reflection and refraction vectors.
|
|
258
|
+
- Added `real.pingpong` to calculate the ping-pong function.
|
|
259
|
+
- Added `geom.mid` to calculate the midpoint between two multidimensional points.
|
|
260
|
+
- Changed all of the `plot` commands to return an array of data containing all of the ordered pairs of plotted points instead of returning a string with details on what was plotted and how.
|
|
261
|
+
- Changed `real.parse` to have an optional command to input initializing code before the return function.
|
|
262
|
+
- Changed `vec2.ang`, `comp.arg`, and `comp.ln` to use `trig.arctan2` instead of `trig.arctan`.
|
|
263
|
+
- Changed `real.Heaviside`, `real.Dirac`, `real.ramp`, and `real.rect` to have parameters for the `edge` (the starting point) and the `scl` (scalar multiplication) of their respective functions.
|
|
264
|
+
- Changed `comp.new` and `quat.new` to have a `type` property (like the `.new` commands for vectors) that's always set to `"comp"` and `"quat"`, respectively.
|
|
265
|
+
- Changed `geom.dist` and `geom.distsq` to be written with loops instead of array methods.
|
|
266
|
+
- Changed `calc.frdt` to also work for three-dimensional (instead of only two-dimensional) vector fields and parametric curves.
|
|
267
|
+
- Fixed `calc.dfrdt` which didn't work due to a slight misspelling in an `if()` statement.
|
|
207
268
|
|
|
208
269
|
## [v1.3.1 Heaviside Patch](https://www.github.com/Zushah/Chalkboard/releases/tag/v1.3.1) - 12/04/2023
|
|
209
|
-
The fifth release of
|
|
270
|
+
The fifth release of Chalkboard.
|
|
210
271
|
Commits: [`v1.3.0...v1.3.1`](https://www.github.com/Zushah/Chalkboard/compare/v1.3.0...v1.3.1)
|
|
211
|
-
- Fixed `matr.translator` which was misspelled
|
|
212
|
-
- Fixed `matr.rotator` which didn't work for two-dimensional rotations and was also misspelled
|
|
213
|
-
- Fixed `calc.grad` which didn't work for vector fields because of another misspelling
|
|
272
|
+
- Fixed `matr.translator` which was misspelled.
|
|
273
|
+
- Fixed `matr.rotator` which didn't work for two-dimensional rotations and was also misspelled.
|
|
274
|
+
- Fixed `calc.grad` which didn't work for vector fields because of another misspelling.
|
|
214
275
|
|
|
215
276
|
## [v1.3.0 Heaviside](https://www.github.com/Zushah/Chalkboard/releases/tag/v1.3.0) - 12/04/2023
|
|
216
|
-
The fourth release of
|
|
277
|
+
The fourth release of Chalkboard.
|
|
217
278
|
Commits: [`v1.2.0...v1.3.0`](https://www.github.com/Zushah/Chalkboard/compare/v1.2.0...v1.3.0)
|
|
218
|
-
- Added multivariable calculus, with commands for directional differentiation, multivariable chain rule, gradient (partial differentiation), double gradient (second-order partial differentiation), divergence, curl, double integration, line/surface integration, arc length, surface area, and curvature
|
|
219
|
-
- Added second-order differentiation with `calc.d2fdx2`, unit tangent vectors for parametric curves with `calc.tangent`, unit normal vectors with `calc.normal`, and unit binormal vectors with `calc.binormal
|
|
220
|
-
- Functions that previously had the `type` property of `"para"` should now be changed to `"curv"
|
|
221
|
-
- Added `.field` and `.fromField` commmands for vectors which define vector fields and evaluate them at particular vectors, respectively
|
|
222
|
-
- Added `plot.field` and `plot.d2fdx2` to plot vector fields and second-order derivatives, respectively
|
|
223
|
-
- Added `.proj` and `.oproj` commands for vectors which calculate the vector projections and rejections, respectively
|
|
224
|
-
- Added commands for vectors to convert between coordinate systems (`vec2.fromPolar`, `vec3.toSpherical`, etc)
|
|
225
|
-
- Changed `matr.toVector` to have another optional parameter for the row/column of a matrix to define a vector from
|
|
226
|
-
- Added `comp.scl` and `quat.scl`, and changed all of the `.magset` commands to work using their respective `.scl` commands
|
|
227
|
-
- Added a `type` parameter to `stat.mean` to enable the calculation of different types of means: arithmetic, geometric, and harmonic
|
|
228
|
-
- Removed `geom.dist2D` and `geom.dist3D` and replaced them with `geom.dist` and `geom.distsq` which can calculate the distance between any-dimensional points
|
|
229
|
-
- Removed `vec2.rotate2D`, `vec3.rotatex`, `vec3.rotatey`, and `vec3.rotatez` because all vector rotations can be handled with rotation matrices
|
|
230
|
-
- Removed `matr.rotater2D` and `matr.rotater3D` and replaced them with `matr.rotater` which can do both 2D and 3D rotations depending on the number of parameters inputted (one parameter required for 2D rotations, three parameters required for 3D rotations)
|
|
231
|
-
- Removed `real.sqrt` from returning a complex number when the input is negative because it would sometimes cause bugs
|
|
232
|
-
- Changed `real.function`, `real.parse`, `calc.dfdx`, and `calc.fxdx` to work for the new `"mult"` function type for multivariable functions, the new `"curv"` function type for parametric curves, and the new `"surf"` function type for parametric surfaces
|
|
233
|
-
- Changed all `plot` commands so they can now optionally have their opacity changed with the `rgba` parameter (which previously used to only be `rgb`)
|
|
234
|
-
- Changed `numb.Gaussian` to use `for(;;)` instead of `while(typeof x === "undefined")
|
|
235
|
-
- Changed the name of `calc.average` to `calc.mean
|
|
279
|
+
- Added multivariable calculus, with commands for directional differentiation, multivariable chain rule, gradient (partial differentiation), double gradient (second-order partial differentiation), divergence, curl, double integration, line/surface integration, arc length, surface area, and curvature.
|
|
280
|
+
- Added second-order differentiation with `calc.d2fdx2`, unit tangent vectors for parametric curves with `calc.tangent`, unit normal vectors with `calc.normal`, and unit binormal vectors with `calc.binormal`.
|
|
281
|
+
- Functions that previously had the `type` property of `"para"` should now be changed to `"curv"`.
|
|
282
|
+
- Added `.field` and `.fromField` commmands for vectors which define vector fields and evaluate them at particular vectors, respectively.
|
|
283
|
+
- Added `plot.field` and `plot.d2fdx2` to plot vector fields and second-order derivatives, respectively.
|
|
284
|
+
- Added `.proj` and `.oproj` commands for vectors which calculate the vector projections and rejections, respectively.
|
|
285
|
+
- Added commands for vectors to convert between coordinate systems (`vec2.fromPolar`, `vec3.toSpherical`, etc).
|
|
286
|
+
- Changed `matr.toVector` to have another optional parameter for the row/column of a matrix to define a vector from.
|
|
287
|
+
- Added `comp.scl` and `quat.scl`, and changed all of the `.magset` commands to work using their respective `.scl` commands.
|
|
288
|
+
- Added a `type` parameter to `stat.mean` to enable the calculation of different types of means: arithmetic, geometric, and harmonic.
|
|
289
|
+
- Removed `geom.dist2D` and `geom.dist3D` and replaced them with `geom.dist` and `geom.distsq` which can calculate the distance between any-dimensional points.
|
|
290
|
+
- Removed `vec2.rotate2D`, `vec3.rotatex`, `vec3.rotatey`, and `vec3.rotatez` because all vector rotations can be handled with rotation matrices.
|
|
291
|
+
- Removed `matr.rotater2D` and `matr.rotater3D` and replaced them with `matr.rotater` which can do both 2D and 3D rotations depending on the number of parameters inputted (one parameter required for 2D rotations, three parameters required for 3D rotations).
|
|
292
|
+
- Removed `real.sqrt` from returning a complex number when the input is negative because it would sometimes cause bugs.
|
|
293
|
+
- Changed `real.function`, `real.parse`, `calc.dfdx`, and `calc.fxdx` to work for the new `"mult"` function type for multivariable functions, the new `"curv"` function type for parametric curves, and the new `"surf"` function type for parametric surfaces.
|
|
294
|
+
- Changed all `plot` commands so they can now optionally have their opacity changed with the `rgba` parameter (which previously used to only be `rgb`).
|
|
295
|
+
- Changed `numb.Gaussian` to use `for(;;)` instead of `while(typeof x === "undefined")`.
|
|
296
|
+
- Changed the name of `calc.average` to `calc.mean`.
|
|
236
297
|
- Fixed `matr.invert` returning `NaN` values when `0` is on the diagonal of a matrix, thanks to [@bhavjitChauhan](https://www.github.com/bhavjitChauhan).
|
|
237
298
|
|
|
238
299
|
## [v1.2.0 Cayley](https://www.github.com/Zushah/Chalkboard/releases/tag/v1.2.0) - 11/27/2023
|
|
239
|
-
The third release of
|
|
300
|
+
The third release of Chalkboard.
|
|
240
301
|
Commits: [`v1.1.0...v1.2.0`](https://www.github.com/Zushah/Chalkboard/compare/v1.1.0...v1.2.0)
|
|
241
|
-
- Added new matrix commands for the trace of a matrix, the row space of a matrix, the column space, and null space, the exponentation, the row Echelon form (Gaussian elimination), solving systems of linear equations, and conversion of a matrix to an object
|
|
242
|
-
- Added `plot.comp`, `plot.vec2`, `plot.vec3`, and `plot.matr` to replace `comp.display`, `vec2.display`, `vec3.display`, and `matr.display
|
|
243
|
-
- Added `numb.binomial` to calculate binomial coefficients
|
|
244
|
-
- Removed `vec2.fromNumber`, `vec3.angcos`, `vec4.angcos`, and `matr.dimension
|
|
245
|
-
- Removed all of the `.addScl` (scalar addition) commands for vectors
|
|
246
|
-
- Changed all of the `matr` commands to work for matrices of any and all dimensions (previously there was a four-by-four dimension limit)
|
|
247
|
-
- Changed all of the `.mulScl` (scalar multiplication) commands for vectors and matrices to be renamed as `.scl
|
|
248
|
-
- Changed `numb.random` to have both of its parameters be optional (no parameters inputted returns a random number between 0 and 1)
|
|
249
|
-
- Changed `numb.Gaussian` to use `while(typeof x === "undefined")` instead of `while(true)
|
|
250
|
-
- Fixed the `vec2.magset` and `vec3.magset` commands which would return vectors in the wrong dimensions
|
|
302
|
+
- Added new matrix commands for the trace of a matrix, the row space of a matrix, the column space, and null space, the exponentation, the row Echelon form (Gaussian elimination), solving systems of linear equations, and conversion of a matrix to an object.
|
|
303
|
+
- Added `plot.comp`, `plot.vec2`, `plot.vec3`, and `plot.matr` to replace `comp.display`, `vec2.display`, `vec3.display`, and `matr.display`.
|
|
304
|
+
- Added `numb.binomial` to calculate binomial coefficients.
|
|
305
|
+
- Removed `vec2.fromNumber`, `vec3.angcos`, `vec4.angcos`, and `matr.dimension`.
|
|
306
|
+
- Removed all of the `.addScl` (scalar addition) commands for vectors.
|
|
307
|
+
- Changed all of the `matr` commands to work for matrices of any and all dimensions (previously there was a four-by-four dimension limit).
|
|
308
|
+
- Changed all of the `.mulScl` (scalar multiplication) commands for vectors and matrices to be renamed as `.scl`.
|
|
309
|
+
- Changed `numb.random` to have both of its parameters be optional (no parameters inputted returns a random number between 0 and 1).
|
|
310
|
+
- Changed `numb.Gaussian` to use `while(typeof x === "undefined")` instead of `while(true)`.
|
|
311
|
+
- Fixed the `vec2.magset` and `vec3.magset` commands which would return vectors in the wrong dimensions.
|
|
251
312
|
|
|
252
313
|
## [v1.1.0 Riemann](https://www.github.com/Zushah/Chalkboard/releases/tag/v1.1.0) - 11/13/2023
|
|
253
|
-
The second release of
|
|
314
|
+
The second release of Chalkboard.
|
|
254
315
|
Commits: [`v1.0.0...v1.1.0`](https://www.github.com/Zushah/Chalkboard/compare/v1.0.0...v1.1.0)
|
|
255
|
-
- Added `numb.prime` to calculate the nth prime number, `numb.nextPrime` to calculate the next prime number, and `numb.primeGap` to calculate the prime gap with an interval
|
|
256
|
-
- Added `numb.factors` to calculate the prime factorization of a number and `numb.divisors` to calculate the divisors of a number
|
|
257
|
-
- Added `numb.Gaussian` to calculate a random number based on a Gaussian distribution
|
|
258
|
-
- Added `.convolution`, `.correlation`, and `.autocorrelation` commands in the `stat`, `calc`, and `plot` categories to calculate and plot the discrete and continuous convolutions, cross-correlations, and autocorrelations of arrays and functions, respectively
|
|
259
|
-
- Added `stat.error` to calculate the standard error of an array
|
|
260
|
-
- Added `matr.cofactor` and `matr.adjugate` to calculate the cofactor and adjugate matrices of a matrix
|
|
261
|
-
- Removed `calc.rOdO` because polar differentation can now be done with `calc.fxdx` instead
|
|
262
|
-
- Changed `calc.fxdx` to work using Simpson's rule instead of the trapezoidal Riemann sum
|
|
263
|
-
- Changed `real.val`, `calc.dfdx`, and `calc.fxdx` to work for all Chalkboard functions regardless of their `type` (before they only worked for `"expl"` functions)
|
|
264
|
-
- Changed `matr.det` and `matr.transpose` to work for all matrices regardless of their dimension
|
|
265
|
-
- Changed `numb.Fibonacci` to have a cache so it works faster
|
|
266
|
-
- Changed the order of the lower and upper values in the `stat.confidenceInterval` return array
|
|
267
|
-
- Changed `plot.function` and `numb.factorial` to be more written slightly more efficiently
|
|
268
|
-
- Changed the name of the `position` parameter in `stat.Gaussian` to `mean
|
|
269
|
-
- Changed the name of `numb.prime` (the command that checks if a number is prime) to `numb.isPrime`, so parts of `numb.primeArr` and `prime.compositeArr` had to be changed, too
|
|
316
|
+
- Added `numb.prime` to calculate the nth prime number, `numb.nextPrime` to calculate the next prime number, and `numb.primeGap` to calculate the prime gap with an interval.
|
|
317
|
+
- Added `numb.factors` to calculate the prime factorization of a number and `numb.divisors` to calculate the divisors of a number.
|
|
318
|
+
- Added `numb.Gaussian` to calculate a random number based on a Gaussian distribution.
|
|
319
|
+
- Added `.convolution`, `.correlation`, and `.autocorrelation` commands in the `stat`, `calc`, and `plot` categories to calculate and plot the discrete and continuous convolutions, cross-correlations, and autocorrelations of arrays and functions, respectively.
|
|
320
|
+
- Added `stat.error` to calculate the standard error of an array.
|
|
321
|
+
- Added `matr.cofactor` and `matr.adjugate` to calculate the cofactor and adjugate matrices of a matrix.
|
|
322
|
+
- Removed `calc.rOdO` because polar differentation can now be done with `calc.fxdx` instead.
|
|
323
|
+
- Changed `calc.fxdx` to work using Simpson's rule instead of the trapezoidal Riemann sum.
|
|
324
|
+
- Changed `real.val`, `calc.dfdx`, and `calc.fxdx` to work for all Chalkboard functions regardless of their `type` (before they only worked for `"expl"` functions).
|
|
325
|
+
- Changed `matr.det` and `matr.transpose` to work for all matrices regardless of their dimension.
|
|
326
|
+
- Changed `numb.Fibonacci` to have a cache so it works faster.
|
|
327
|
+
- Changed the order of the lower and upper values in the `stat.confidenceInterval` return array.
|
|
328
|
+
- Changed `plot.function` and `numb.factorial` to be more written slightly more efficiently.
|
|
329
|
+
- Changed the name of the `position` parameter in `stat.Gaussian` to `mean`.
|
|
330
|
+
- Changed the name of `numb.prime` (the command that checks if a number is prime) to `numb.isPrime`, so parts of `numb.primeArr` and `prime.compositeArr` had to be changed, too.
|
|
270
331
|
|
|
271
332
|
## [v1.0.0 Euclid](https://www.github.com/Zushah/Chalkboard/releases/tag/v1.0.0) - 11/06/2023
|
|
272
|
-
The first release of
|
|
333
|
+
The first release of Chalkboard.
|
|
273
334
|
Commits: [`v1.0.0...main`](https://www.github.com/Zushah/Chalkboard/compare/v1.0.0...main)
|