math-exercises 2.2.60 → 2.2.62
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/lib/exercises/exercise.d.ts +4 -0
- package/lib/exercises/exercise.d.ts.map +1 -1
- package/lib/exercises/math/calcul/fractions/fractionsSumsSameDenominators.d.ts.map +1 -1
- package/lib/exercises/math/calcul/proportionality/findCoeffInProportionalTableNonIntegers.js +1 -1
- package/lib/exercises/math/calcul/proportionality/isTableProportionalNonInteger.d.ts.map +1 -1
- package/lib/exercises/math/calcul/proportionality/isTableProportionalNonInteger.js +8 -1
- package/lib/exercises/math/calculLitteral/systems/basicSystemResolution.d.ts.map +1 -1
- package/lib/exercises/math/calculLitteral/systems/basicSystemResolution.js +5 -2
- package/lib/exercises/math/functions/basics/graphicInequationAffine.d.ts +12 -0
- package/lib/exercises/math/functions/basics/graphicInequationAffine.d.ts.map +1 -0
- package/lib/exercises/math/functions/basics/graphicInequationAffine.js +123 -0
- package/lib/exercises/math/functions/basics/index.d.ts +1 -0
- package/lib/exercises/math/functions/basics/index.d.ts.map +1 -1
- package/lib/exercises/math/functions/basics/index.js +1 -0
- package/lib/exercises/math/functions/trinoms/findSecondRoot.d.ts +10 -0
- package/lib/exercises/math/functions/trinoms/findSecondRoot.d.ts.map +1 -0
- package/lib/exercises/math/functions/trinoms/findSecondRoot.js +127 -0
- package/lib/exercises/math/functions/trinoms/index.d.ts +3 -0
- package/lib/exercises/math/functions/trinoms/index.d.ts.map +1 -1
- package/lib/exercises/math/functions/trinoms/index.js +3 -0
- package/lib/exercises/math/functions/trinoms/rootsProduct.d.ts +8 -0
- package/lib/exercises/math/functions/trinoms/rootsProduct.d.ts.map +1 -0
- package/lib/exercises/math/functions/trinoms/rootsProduct.js +112 -0
- package/lib/exercises/math/functions/trinoms/rootsSum.d.ts +8 -0
- package/lib/exercises/math/functions/trinoms/rootsSum.d.ts.map +1 -0
- package/lib/exercises/math/functions/trinoms/rootsSum.js +113 -0
- package/lib/exercises/math/geometry/euclidianConstructions/pointImageFromTranslation.d.ts +4 -1
- package/lib/exercises/math/geometry/euclidianConstructions/pointImageFromTranslation.d.ts.map +1 -1
- package/lib/exercises/math/geometry/euclidianConstructions/pointImageFromTranslation.js +17 -5
- package/lib/exercises/math/geometry/thales/thalesCalcul.d.ts.map +1 -1
- package/lib/exercises/math/geometry/thales/thalesCalcul.js +6 -0
- package/lib/exercises/math/powers/powersDivision.d.ts.map +1 -1
- package/lib/exercises/math/powers/powersDivision.js +19 -11
- package/lib/exercises/math/powers/powersPower.d.ts.map +1 -1
- package/lib/exercises/math/powers/powersPower.js +19 -11
- package/lib/exercises/math/powers/powersProduct.d.ts +4 -1
- package/lib/exercises/math/powers/powersProduct.d.ts.map +1 -1
- package/lib/exercises/math/powers/powersProduct.js +76 -35
- package/lib/exercises/math/probaStat/binomial/binomialInequation.d.ts.map +1 -1
- package/lib/exercises/math/probaStat/binomial/binomialInequation.js +6 -0
- package/lib/exercises/math/probaStat/probaFromTableNoContext.d.ts.map +1 -1
- package/lib/exercises/math/probaStat/probaFromTableNoContext.js +5 -1
- package/lib/exercises/math/probaStat/probaFromTableWithContext.d.ts.map +1 -1
- package/lib/exercises/math/probaStat/probaFromTableWithContext.js +19 -3
- package/lib/exercises/vea/rationalVEA.d.ts +2 -0
- package/lib/exercises/vea/rationalVEA.d.ts.map +1 -0
- package/lib/exercises/vea/rationalVEA.js +14 -0
- package/lib/index.d.ts +22 -1
- package/lib/index.d.ts.map +1 -1
- package/lib/math/geometry/line.d.ts.map +1 -1
- package/lib/math/geometry/line.js +3 -1
- package/lib/math/geometry/vector.d.ts.map +1 -1
- package/lib/math/geometry/vector.js +1 -7
- package/lib/math/inequations/inequation.d.ts +1 -0
- package/lib/math/inequations/inequation.d.ts.map +1 -1
- package/lib/math/inequations/inequation.js +3 -0
- package/lib/math/numbers/rationals/rational.d.ts +1 -1
- package/lib/math/numbers/rationals/rational.d.ts.map +1 -1
- package/lib/math/numbers/rationals/rational.js +18 -6
- package/lib/math/polynomials/affine.d.ts +1 -0
- package/lib/math/polynomials/affine.d.ts.map +1 -1
- package/lib/math/polynomials/affine.js +4 -0
- package/lib/math/polynomials/generalTrinom.d.ts +10 -2
- package/lib/math/polynomials/generalTrinom.d.ts.map +1 -1
- package/lib/math/polynomials/generalTrinom.js +29 -1
- package/lib/playground.d.ts.map +1 -1
- package/lib/playground.js +4 -6
- package/lib/tree/nodes/operators/fractionNode.d.ts +1 -0
- package/lib/tree/nodes/operators/fractionNode.d.ts.map +1 -1
- package/lib/tree/nodes/operators/fractionNode.js +10 -0
- package/lib/tree/nodes/operators/powerNode.d.ts +1 -0
- package/lib/tree/nodes/operators/powerNode.d.ts.map +1 -1
- package/lib/tree/nodes/operators/powerNode.js +10 -1
- package/lib/tree/parsers/powerParser.d.ts +2 -0
- package/lib/tree/parsers/powerParser.d.ts.map +1 -0
- package/lib/tree/parsers/powerParser.js +26 -0
- package/lib/tree/parsers/rationalParser.d.ts.map +1 -1
- package/lib/tree/parsers/rationalParser.js +1 -4
- package/lib/tree/parsers/spacePointParser.d.ts.map +1 -1
- package/lib/tree/parsers/spaceVectorParser.d.ts.map +1 -1
- package/package.json +1 -1
package/lib/index.d.ts
CHANGED
|
@@ -691,6 +691,12 @@ declare const mathExercises: (import("./exercises/exercise").Exercise<{
|
|
|
691
691
|
isImage: boolean;
|
|
692
692
|
x: number;
|
|
693
693
|
y: number;
|
|
694
|
+
}, {}> | import("./exercises/exercise").Exercise<{
|
|
695
|
+
yValue: number;
|
|
696
|
+
xValue: number;
|
|
697
|
+
inegalitySymbol: import("./math/inequations/inequation").InegalitySymbols;
|
|
698
|
+
a: number;
|
|
699
|
+
b: number;
|
|
694
700
|
}, {}> | import("./exercises/exercise").Exercise<{
|
|
695
701
|
k: number;
|
|
696
702
|
}, {}> | import("./exercises/exercise").Exercise<{
|
|
@@ -780,6 +786,13 @@ declare const mathExercises: (import("./exercises/exercise").Exercise<{
|
|
|
780
786
|
bIdentifiers: import("./tree/nodes/nodeConstructor").NodeIdentifiers;
|
|
781
787
|
cIdentifiers: import("./tree/nodes/nodeConstructor").NodeIdentifiers;
|
|
782
788
|
isAsking: string;
|
|
789
|
+
}, {}> | import("./exercises/exercise").Exercise<{
|
|
790
|
+
trinomIdentifiers: import("./math/polynomials/generalTrinom").GeneralTrinomIdentifiers;
|
|
791
|
+
}, {}> | import("./exercises/exercise").Exercise<{
|
|
792
|
+
trinomIdentifiers: import("./math/polynomials/generalTrinom").GeneralTrinomIdentifiers;
|
|
793
|
+
}, {}> | import("./exercises/exercise").Exercise<{
|
|
794
|
+
trinomIdentifiers: import("./math/polynomials/generalTrinom").GeneralTrinomIdentifiers;
|
|
795
|
+
firstRootIdentifiers: import("./tree/nodes/nodeConstructor").NodeIdentifiers;
|
|
783
796
|
}, {}> | import("./exercises/exercise").Exercise<{
|
|
784
797
|
a: number;
|
|
785
798
|
k: number;
|
|
@@ -1121,7 +1134,9 @@ declare const mathExercises: (import("./exercises/exercise").Exercise<{
|
|
|
1121
1134
|
points: import("./math/geometry/point").PointIdentifiers[];
|
|
1122
1135
|
startPoint: string;
|
|
1123
1136
|
translationPoints: string[];
|
|
1124
|
-
}, {
|
|
1137
|
+
}, {
|
|
1138
|
+
useVector: boolean;
|
|
1139
|
+
}> | import("./exercises/exercise").Exercise<{
|
|
1125
1140
|
type: number;
|
|
1126
1141
|
commands: string[];
|
|
1127
1142
|
}, {}> | import("./exercises/exercise").Exercise<{
|
|
@@ -1257,6 +1272,12 @@ declare const mathExercises: (import("./exercises/exercise").Exercise<{
|
|
|
1257
1272
|
b: number;
|
|
1258
1273
|
c: number;
|
|
1259
1274
|
}, {}> | import("./exercises/exercise").Exercise<{
|
|
1275
|
+
a: number;
|
|
1276
|
+
b: number;
|
|
1277
|
+
c: number;
|
|
1278
|
+
}, {
|
|
1279
|
+
useOnlyPowersOfTen: boolean;
|
|
1280
|
+
}> | import("./exercises/exercise").Exercise<{
|
|
1260
1281
|
tenPower: number;
|
|
1261
1282
|
decimal: number;
|
|
1262
1283
|
}, {}> | import("./exercises/exercise").Exercise<{
|
package/lib/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAEA,OAAO,yBAAyB,CAAC;AAEjC,QAAA,MAAM,aAAa
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAEA,OAAO,yBAAyB,CAAC;AAEjC,QAAA,MAAM,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;SAA+B,CAAC;AACnD,QAAA,MAAM,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;SAA6B,CAAC;AAE/C,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"line.d.ts","sourceRoot":"","sources":["../../../src/math/geometry/line.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,mDAAmD,CAAC;AAEvF,OAAO,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAC;AAC/D,OAAO,EAAE,SAAS,EAAE,MAAM,sCAAsC,CAAC;AAGjE,OAAO,EAAE,OAAO,EAAO,MAAM,oCAAoC,CAAC;AAMlE,OAAO,EACL,aAAa,EAEd,MAAM,0CAA0C,CAAC;AAKlD,OAAO,EAAE,KAAK,EAAoB,gBAAgB,EAAE,MAAM,SAAS,CAAC;AACpE,OAAO,EAAE,MAAM,EAAqB,MAAM,UAAU,CAAC;AAErD,MAAM,MAAM,eAAe,GAAG;IAC5B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,gBAAgB,CAAC;IACzB,MAAM,EAAE,gBAAgB,CAAC;CAC1B,CAAC;AACF,8BAAsB,eAAe;IACnC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,MAAM;IAK3B,MAAM,CAAC,eAAe,CAAC,WAAW,EAAE,eAAe;CAOpD;AACD,qBAAa,IAAI;IACf,MAAM,EAAE,KAAK,CAAC;IACd,MAAM,EAAE,KAAK,CAAC;IACd,UAAU,EAAE,OAAO,CAAC;IACpB,CAAC,EAAE,aAAa,GAAG,SAAS,CAAC;IAC7B,CAAC,EAAE,aAAa,GAAG,SAAS,CAAC;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,cAAc,EAAE,MAAM,CAAC;IACvB,OAAO,EAAE,MAAM,CAAC;gBACJ,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,CAAC,EAAE,MAAM;IAsBvD,aAAa;;;;;IAOb,WAAW,CAAC,IAAI,EAAE,IAAI;
|
|
1
|
+
{"version":3,"file":"line.d.ts","sourceRoot":"","sources":["../../../src/math/geometry/line.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,mDAAmD,CAAC;AAEvF,OAAO,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAC;AAC/D,OAAO,EAAE,SAAS,EAAE,MAAM,sCAAsC,CAAC;AAGjE,OAAO,EAAE,OAAO,EAAO,MAAM,oCAAoC,CAAC;AAMlE,OAAO,EACL,aAAa,EAEd,MAAM,0CAA0C,CAAC;AAKlD,OAAO,EAAE,KAAK,EAAoB,gBAAgB,EAAE,MAAM,SAAS,CAAC;AACpE,OAAO,EAAE,MAAM,EAAqB,MAAM,UAAU,CAAC;AAErD,MAAM,MAAM,eAAe,GAAG;IAC5B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,gBAAgB,CAAC;IACzB,MAAM,EAAE,gBAAgB,CAAC;CAC1B,CAAC;AACF,8BAAsB,eAAe;IACnC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,MAAM;IAK3B,MAAM,CAAC,eAAe,CAAC,WAAW,EAAE,eAAe;CAOpD;AACD,qBAAa,IAAI;IACf,MAAM,EAAE,KAAK,CAAC;IACd,MAAM,EAAE,KAAK,CAAC;IACd,UAAU,EAAE,OAAO,CAAC;IACpB,CAAC,EAAE,aAAa,GAAG,SAAS,CAAC;IAC7B,CAAC,EAAE,aAAa,GAAG,SAAS,CAAC;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,cAAc,EAAE,MAAM,CAAC;IACvB,OAAO,EAAE,MAAM,CAAC;gBACJ,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,CAAC,EAAE,MAAM;IAsBvD,aAAa;;;;;IAOb,WAAW,CAAC,IAAI,EAAE,IAAI;IAYtB,YAAY,CAAC,KAAK,EAAE,KAAK;IAWzB,QAAQ,CAAC,KAAK,EAAE,KAAK,EAAE,WAAW,GAAE,OAAe;IAenD,cAAc,CAAC,IAAI,CAAC,EAAE,MAAM;IAa5B,WAAW,MAAO,MAAM,KAAK,KAAK,KAAG,SAAS,CAmB5C;IAEF,oBAAoB,IAAI,SAAS;IAuBjC,WAAW;IAMX,iBAAiB;;;;;IAcjB,KAAK;IAGL,gBAAgB;IAIhB,aAAa,CACX,iBAAiB,EAAE,OAAO,EAC1B,EACE,OAAc,EACd,SAAiB,EACjB,yBAAgC,GACjC,GAAE,kBAAuB;IAqB5B,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,aAAa,CAAC,EAAE,MAAM;CAW7C"}
|
|
@@ -69,7 +69,9 @@ class Line {
|
|
|
69
69
|
if (line.isVertical) {
|
|
70
70
|
return this.isVertical;
|
|
71
71
|
}
|
|
72
|
-
|
|
72
|
+
const vec = vector_1.VectorConstructor.fromPoints(this.pointA, this.pointB);
|
|
73
|
+
const lineVec = vector_1.VectorConstructor.fromPoints(line.pointA, line.pointB);
|
|
74
|
+
return vec.isColinear(lineVec);
|
|
73
75
|
}
|
|
74
76
|
getParallele(point) {
|
|
75
77
|
if (this.isVertical) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"vector.d.ts","sourceRoot":"","sources":["../../../src/math/geometry/vector.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAC;AAE/D,OAAO,EAAE,IAAI,EAAY,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"vector.d.ts","sourceRoot":"","sources":["../../../src/math/geometry/vector.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAC;AAE/D,OAAO,EAAE,IAAI,EAAY,MAAM,uBAAuB,CAAC;AAavD,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAEhC,8BAAsB,iBAAiB;IACrC,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,GAAG,MAAM;IAOpD,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,UAAO,GAAG,MAAM;CAOtD;AAED,qBAAa,MAAM;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;IACZ,CAAC,EAAE,aAAa,CAAC;IACjB,CAAC,EAAE,aAAa,CAAC;gBACL,IAAI,EAAE,MAAM,EAAE,CAAC,EAAE,aAAa,EAAE,CAAC,EAAE,aAAa;IAO5D,KAAK,IAAI,MAAM;IAIf,eAAe,IAAI,MAAM;IAMzB,iBAAiB,IAAI,MAAM;IAM3B,UAAU,CAAC,CAAC,EAAE,MAAM,GAAG,OAAO;IAI9B,WAAW,CAAC,CAAC,EAAE,MAAM,GAAG,aAAa;IAIrC,KAAK,CAAC,CAAC,EAAE,aAAa,EAAE,IAAI,CAAC,EAAE,MAAM;IAOrC,aAAa,CAAC,CAAC,EAAE,MAAM,GAAG,IAAI;IAc9B,GAAG,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM;IAYtB,OAAO,IAAI,aAAa;IAUxB,WAAW,CAAC,UAAU,EAAE,KAAK,EAAE,IAAI,CAAC,EAAE,MAAM;IAO5C,MAAM,CAAC,CAAC,EAAE,MAAM;IAIhB,YAAY;IAMZ,YAAY;CAMb"}
|
|
@@ -44,13 +44,7 @@ class Vector {
|
|
|
44
44
|
return det.evaluate({}) === 0;
|
|
45
45
|
}
|
|
46
46
|
determinant(v) {
|
|
47
|
-
|
|
48
|
-
throw Error("general determinant not implemented");
|
|
49
|
-
const xValue = this.x.value;
|
|
50
|
-
const yValue = this.y.value;
|
|
51
|
-
const vxValue = v.x.value;
|
|
52
|
-
const vyValue = v.y.value;
|
|
53
|
-
return new numberNode_1.NumberNode(xValue * vyValue - yValue * vxValue);
|
|
47
|
+
return (0, substractNode_1.substract)((0, multiplyNode_1.multiply)(this.x, v.y), (0, multiplyNode_1.multiply)(this.y, v.x)).simplify();
|
|
54
48
|
}
|
|
55
49
|
times(k, name) {
|
|
56
50
|
return new Vector(name ?? "v", new multiplyNode_1.MultiplyNode(this.x, k).simplify(), new multiplyNode_1.MultiplyNode(this.y, k).simplify());
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
export type InegalitySymbols = "<" | ">" | "\\le" | "\\ge";
|
|
2
2
|
export declare abstract class InequationSymbolConstructor {
|
|
3
3
|
static random(): InequationSymbol;
|
|
4
|
+
static randomSymbol(): InegalitySymbols;
|
|
4
5
|
}
|
|
5
6
|
export declare class InequationSymbol {
|
|
6
7
|
isStrict: boolean;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"inequation.d.ts","sourceRoot":"","sources":["../../../src/math/inequations/inequation.ts"],"names":[],"mappings":"AACA,MAAM,MAAM,gBAAgB,GAAG,GAAG,GAAG,GAAG,GAAG,MAAM,GAAG,MAAM,CAAC;AAE3D,8BAAsB,2BAA2B;IAC/C,MAAM,CAAC,MAAM;
|
|
1
|
+
{"version":3,"file":"inequation.d.ts","sourceRoot":"","sources":["../../../src/math/inequations/inequation.ts"],"names":[],"mappings":"AACA,MAAM,MAAM,gBAAgB,GAAG,GAAG,GAAG,GAAG,GAAG,MAAM,GAAG,MAAM,CAAC;AAE3D,8BAAsB,2BAA2B;IAC/C,MAAM,CAAC,MAAM;IAGb,MAAM,CAAC,YAAY;CAGpB;AACD,qBAAa,gBAAgB;IAC3B,QAAQ,EAAE,OAAO,CAAC;IAClB,KAAK,EAAE,OAAO,CAAC;IACf,MAAM,EAAE,gBAAgB,CAAC;gBACb,MAAM,EAAE,gBAAgB;IAKpC,QAAQ,QAAO,gBAAgB,CAW7B;IACF,UAAU,yBAER;IACF,mBAAmB,yBAEjB;IACF,iBAAiB,oCAWf;CACH"}
|
|
@@ -6,6 +6,9 @@ class InequationSymbolConstructor {
|
|
|
6
6
|
static random() {
|
|
7
7
|
return new InequationSymbol((0, random_1.random)(["<", ">", "\\le", "\\ge"]));
|
|
8
8
|
}
|
|
9
|
+
static randomSymbol() {
|
|
10
|
+
return (0, random_1.random)(["<", ">", "\\le", "\\ge"]);
|
|
11
|
+
}
|
|
9
12
|
}
|
|
10
13
|
exports.InequationSymbolConstructor = InequationSymbolConstructor;
|
|
11
14
|
class InequationSymbol {
|
|
@@ -11,7 +11,7 @@ export declare abstract class RationalConstructor {
|
|
|
11
11
|
static randomIrreductible(max?: number): Rational;
|
|
12
12
|
static randomIrreductibleProba(maxDenum?: number): Rational | Integer;
|
|
13
13
|
static randomIrreductibleWithSign(max?: number): Rational;
|
|
14
|
-
static randomPureRational(): Rational;
|
|
14
|
+
static randomPureRational(max?: number): Rational;
|
|
15
15
|
}
|
|
16
16
|
export declare class Rational implements Nombre {
|
|
17
17
|
num: number;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rational.d.ts","sourceRoot":"","sources":["../../../../src/math/numbers/rationals/rational.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,YAAY,EAAE,MAAM,yCAAyC,CAAC;AACvE,OAAO,EAAQ,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAE1D,OAAO,EAAE,YAAY,EAAE,MAAM,yCAAyC,CAAC;
|
|
1
|
+
{"version":3,"file":"rational.d.ts","sourceRoot":"","sources":["../../../../src/math/numbers/rationals/rational.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,YAAY,EAAE,MAAM,yCAAyC,CAAC;AACvE,OAAO,EAAQ,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAE1D,OAAO,EAAE,YAAY,EAAE,MAAM,yCAAyC,CAAC;AAMvE,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAE7C,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAE/C,8BAAsB,mBAAmB;IACvC;;OAEG;IACH,MAAM,CAAC,kBAAkB,CAAC,MAAM,GAAE,MAAW;IAW7C,MAAM,CAAC,kBAAkB,CAAC,GAAG,GAAE,MAAW;IAO1C,MAAM,CAAC,uBAAuB,CAAC,QAAQ,GAAE,MAAW;IAKpD,MAAM,CAAC,0BAA0B,CAAC,GAAG,GAAE,MAAW;IAQlD,MAAM,CAAC,kBAAkB,CAAC,GAAG,GAAE,MAAW;CAO3C;AAED,qBAAa,QAAS,YAAW,MAAM;IACrC,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,YAAY,EAAE,OAAO,CAAC;IACtB,IAAI,EAAE,UAAU,CAAC;gBAEL,SAAS,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM;IAYlD,MAAM,CAAC,CAAC,EAAE,MAAM;IAGhB,KAAK;IAML,GAAG,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM;IAkBvB,QAAQ,CAAC,EAAE,EAAE,MAAM,GAAG,QAAQ,GAAG,OAAO;IAgBxC,OAAO,CAAC,cAAc,EAAE,OAAO,GAAG,MAAM;IAIxC,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM;IAgB1B,QAAQ,IAAI,QAAQ;IAIpB,MAAM,CAAC,IAAI,CAAC,EAAE,WAAW;IAgBzB,cAAc;IAId,QAAQ,IAAI,OAAO,GAAG,QAAQ;CAqB/B"}
|
|
@@ -13,6 +13,7 @@ const coinFlip_1 = require("../../../utils/alea/coinFlip");
|
|
|
13
13
|
const random_1 = require("../../../utils/alea/random");
|
|
14
14
|
const shuffle_1 = require("../../../utils/alea/shuffle");
|
|
15
15
|
const doWhile_1 = require("../../../utils/doWhile");
|
|
16
|
+
const decimal_1 = require("../decimals/decimal");
|
|
16
17
|
const integer_1 = require("../integer/integer");
|
|
17
18
|
const nombre_1 = require("../nombre");
|
|
18
19
|
class RationalConstructor {
|
|
@@ -52,8 +53,8 @@ class RationalConstructor {
|
|
|
52
53
|
const [num, denum] = (0, shuffle_1.shuffle)([a, b]);
|
|
53
54
|
return new Rational(sign * num, denum);
|
|
54
55
|
}
|
|
55
|
-
static randomPureRational() {
|
|
56
|
-
const frac = (0, doWhile_1.doWhile)(() => RationalConstructor.randomIrreductible(
|
|
56
|
+
static randomPureRational(max = 20) {
|
|
57
|
+
const frac = (0, doWhile_1.doWhile)(() => RationalConstructor.randomIrreductible(max), (x) => (0, round_1.round)(x.value, 10) === x.value);
|
|
57
58
|
return frac;
|
|
58
59
|
}
|
|
59
60
|
}
|
|
@@ -139,10 +140,21 @@ class Rational {
|
|
|
139
140
|
}
|
|
140
141
|
simplify() {
|
|
141
142
|
const sign = this.num * this.denum > 0 ? 1 : -1;
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
143
|
+
let intNum = this.num;
|
|
144
|
+
let intDenum = this.denum;
|
|
145
|
+
if (Math.floor(intNum) !== intNum || Math.floor(intDenum) !== intDenum) {
|
|
146
|
+
const numDec = new decimal_1.Decimal(intNum);
|
|
147
|
+
const denumDec = new decimal_1.Decimal(intDenum);
|
|
148
|
+
const numPrec = numDec.precision;
|
|
149
|
+
const denumPrec = denumDec.precision;
|
|
150
|
+
const totalPrec = Math.max(numPrec, denumPrec);
|
|
151
|
+
intNum = numDec.multiplyByPowerOfTen(totalPrec).value;
|
|
152
|
+
intDenum = denumDec.multiplyByPowerOfTen(totalPrec).value;
|
|
153
|
+
}
|
|
154
|
+
const div = Math.abs((0, gcd_1.gcd)(intNum, intDenum));
|
|
155
|
+
if (Math.abs(intDenum) === div)
|
|
156
|
+
return new integer_1.Integer(intNum / intDenum);
|
|
157
|
+
return new Rational((sign * Math.abs(intNum)) / div, Math.abs(intDenum) / div);
|
|
146
158
|
}
|
|
147
159
|
}
|
|
148
160
|
exports.Rational = Rational;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"affine.d.ts","sourceRoot":"","sources":["../../../src/math/polynomials/affine.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"affine.d.ts","sourceRoot":"","sources":["../../../src/math/polynomials/affine.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAG3C,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAElC,8BAAsB,iBAAiB;IACrC,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM;IAG3C,MAAM,CAAC,MAAM,CACX,KAAK,CAAC,EAAE;QAAE,GAAG,CAAC,EAAE,MAAM,CAAC;QAAC,GAAG,CAAC,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAA;KAAE,EAC3D,KAAK,CAAC,EAAE;QAAE,GAAG,CAAC,EAAE,MAAM,CAAC;QAAC,GAAG,CAAC,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAA;KAAE,GAC1D,MAAM;IAcT,MAAM,CAAC,gBAAgB,CACrB,EAAE,EAAE,MAAM,EACV,KAAK,CAAC,EAAE;QAAE,GAAG,CAAC,EAAE,MAAM,CAAC;QAAC,GAAG,CAAC,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAA;KAAE,EAC3D,KAAK,CAAC,EAAE;QAAE,GAAG,CAAC,EAAE,MAAM,CAAC;QAAC,GAAG,CAAC,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAA;KAAE,GAC1D,MAAM,EAAE;CAWZ;AAED,qBAAa,MAAO,SAAQ,UAAU;IACpC,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,QAAQ,EAAE,MAAM,CAAC;gBAEL,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,QAAQ,GAAE,MAAY;IAOxD,OAAO,IAAI,MAAM;IAIjB,MAAM,IAAI,MAAM;IAMhB,KAAK,CAAC,CAAC,EAAE,MAAM;IAIf,QAAQ,IAAI,MAAM;IAIlB,iBAAiB,IAAI,MAAM;IAI3B,aAAa;CAGd"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.Affine = exports.AffineConstructor = void 0;
|
|
4
|
+
const colors_1 = require("../../geogebra/colors");
|
|
4
5
|
const rational_1 = require("../numbers/rationals/rational");
|
|
5
6
|
const randint_1 = require("../utils/random/randint");
|
|
6
7
|
const polynomial_1 = require("./polynomial");
|
|
@@ -51,5 +52,8 @@ class Affine extends polynomial_1.Polynomial {
|
|
|
51
52
|
toReducedEquation() {
|
|
52
53
|
return `y=${this.toTex()}`;
|
|
53
54
|
}
|
|
55
|
+
toGGBCommands() {
|
|
56
|
+
return [`f(x) = ${this.toString()}`, `SetColor(f, "${(0, colors_1.randomColor)()}")`];
|
|
57
|
+
}
|
|
54
58
|
}
|
|
55
59
|
exports.Affine = Affine;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { AddNode } from "../../tree/nodes/operators/addNode";
|
|
2
1
|
import { AlgebraicNode } from "../../tree/nodes/algebraicNode";
|
|
3
2
|
import { NodeType } from "../../tree/nodes/node";
|
|
3
|
+
import { NodeIdentifiers } from "../../tree/nodes/nodeConstructor";
|
|
4
4
|
export declare abstract class GeneralTrinomConstructor {
|
|
5
5
|
static random(aOpts?: {
|
|
6
6
|
min?: number;
|
|
@@ -31,7 +31,14 @@ export declare abstract class GeneralTrinomConstructor {
|
|
|
31
31
|
}): GeneralTrinom;
|
|
32
32
|
static randomNiceRoots(nbOfRoots?: number): GeneralTrinom;
|
|
33
33
|
static fromCoeffs(coeffs: number[]): GeneralTrinom;
|
|
34
|
+
static fromIdentifiers(identifiers: GeneralTrinomIdentifiers): GeneralTrinom;
|
|
34
35
|
}
|
|
36
|
+
export type GeneralTrinomIdentifiers = {
|
|
37
|
+
a: number | NodeIdentifiers;
|
|
38
|
+
b: number | NodeIdentifiers;
|
|
39
|
+
c: number | NodeIdentifiers;
|
|
40
|
+
opts?: GeneralTrinomOptions;
|
|
41
|
+
};
|
|
35
42
|
type GeneralTrinomOptions = {
|
|
36
43
|
variable: string;
|
|
37
44
|
};
|
|
@@ -44,9 +51,10 @@ export declare class GeneralTrinom {
|
|
|
44
51
|
constructor(a: AlgebraicNode | number, b: AlgebraicNode | number, c: AlgebraicNode | number, opts?: GeneralTrinomOptions);
|
|
45
52
|
getDelta(): AlgebraicNode;
|
|
46
53
|
getRoots(): AlgebraicNode[];
|
|
47
|
-
toTree(): AddNode;
|
|
54
|
+
toTree(): import("../../tree/nodes/operators/multiplyNode").MultiplyNode | import("../../tree/nodes/operators/addNode").AddNode;
|
|
48
55
|
toTex(): string;
|
|
49
56
|
getCoeffs(): number[];
|
|
57
|
+
toIdentifiers(): GeneralTrinomIdentifiers;
|
|
50
58
|
}
|
|
51
59
|
export {};
|
|
52
60
|
//# sourceMappingURL=generalTrinom.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generalTrinom.d.ts","sourceRoot":"","sources":["../../../src/math/polynomials/generalTrinom.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"generalTrinom.d.ts","sourceRoot":"","sources":["../../../src/math/polynomials/generalTrinom.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAC;AAG/D,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AACjD,OAAO,EAEL,eAAe,EAChB,MAAM,kCAAkC,CAAC;AAE1C,8BAAsB,wBAAwB;IAC5C,MAAM,CAAC,MAAM,CACX,KAAK,CAAC,EAAE;QAAE,GAAG,CAAC,EAAE,MAAM,CAAC;QAAC,GAAG,CAAC,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAA;KAAE,EAC3D,KAAK,CAAC,EAAE;QAAE,GAAG,CAAC,EAAE,MAAM,CAAC;QAAC,GAAG,CAAC,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAA;KAAE,EAC3D,KAAK,CAAC,EAAE;QAAE,GAAG,CAAC,EAAE,MAAM,CAAC;QAAC,GAAG,CAAC,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAA;KAAE,GAC1D,aAAa;IAmBhB,MAAM,CAAC,eAAe,CACpB,KAAK,CAAC,EAAE;QACN,GAAG,CAAC,EAAE,MAAM,CAAC;QACb,GAAG,CAAC,EAAE,MAAM,CAAC;QACb,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;QACpB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;KACjB,EACD,SAAS,CAAC,EAAE;QAAE,GAAG,CAAC,EAAE,MAAM,CAAC;QAAC,GAAG,CAAC,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAA;KAAE,EAC/D,QAAQ,CAAC,EAAE;QAAE,GAAG,CAAC,EAAE,MAAM,CAAC;QAAC,GAAG,CAAC,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAA;KAAE,GAC7D,aAAa;IAmBhB,MAAM,CAAC,eAAe,CAAC,SAAS,GAAE,MAAU;IAqB5C,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,MAAM,EAAE;IAIlC,MAAM,CAAC,eAAe,CAAC,WAAW,EAAE,wBAAwB;CAc7D;AAED,MAAM,MAAM,wBAAwB,GAAG;IACrC,CAAC,EAAE,MAAM,GAAG,eAAe,CAAC;IAC5B,CAAC,EAAE,MAAM,GAAG,eAAe,CAAC;IAC5B,CAAC,EAAE,MAAM,GAAG,eAAe,CAAC;IAC5B,IAAI,CAAC,EAAE,oBAAoB,CAAC;CAC7B,CAAC;AAEF,KAAK,oBAAoB,GAAG;IAAE,QAAQ,EAAE,MAAM,CAAA;CAAE,CAAC;AACjD,qBAAa,aAAa;IACxB,CAAC,EAAE,aAAa,CAAC;IACjB,CAAC,EAAE,aAAa,CAAC;IACjB,CAAC,EAAE,aAAa,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,QAAQ,CAAmB;gBAG/B,CAAC,EAAE,aAAa,GAAG,MAAM,EACzB,CAAC,EAAE,aAAa,GAAG,MAAM,EACzB,CAAC,EAAE,aAAa,GAAG,MAAM,EACzB,IAAI,CAAC,EAAE,oBAAoB;IAS7B,QAAQ;IAiBR,QAAQ,IAAI,aAAa,EAAE;IAgB3B,MAAM;IAYN,KAAK;IAGL,SAAS;IAIT,aAAa,IAAI,wBAAwB;CAQ1C"}
|
|
@@ -11,6 +11,7 @@ const oppositeNode_1 = require("../../tree/nodes/functions/oppositeNode");
|
|
|
11
11
|
const randint_1 = require("../utils/random/randint");
|
|
12
12
|
const random_1 = require("../../utils/alea/random");
|
|
13
13
|
const node_1 = require("../../tree/nodes/node");
|
|
14
|
+
const nodeConstructor_1 = require("../../tree/nodes/nodeConstructor");
|
|
14
15
|
class GeneralTrinomConstructor {
|
|
15
16
|
static random(aOpts, bOpts, cOpts) {
|
|
16
17
|
const a = (0, randint_1.randint)(aOpts?.min ?? -9, aOpts?.max ?? 10, aOpts?.excludes ?? [0]);
|
|
@@ -53,6 +54,15 @@ class GeneralTrinomConstructor {
|
|
|
53
54
|
static fromCoeffs(coeffs) {
|
|
54
55
|
return new GeneralTrinom(coeffs[2], coeffs[1], coeffs[0]);
|
|
55
56
|
}
|
|
57
|
+
static fromIdentifiers(identifiers) {
|
|
58
|
+
return new GeneralTrinom(typeof identifiers.a === "number"
|
|
59
|
+
? identifiers.a
|
|
60
|
+
: nodeConstructor_1.NodeConstructor.fromIdentifiers(identifiers.a), typeof identifiers.b === "number"
|
|
61
|
+
? identifiers.b
|
|
62
|
+
: nodeConstructor_1.NodeConstructor.fromIdentifiers(identifiers.b), typeof identifiers.c === "number"
|
|
63
|
+
? identifiers.c
|
|
64
|
+
: nodeConstructor_1.NodeConstructor.fromIdentifiers(identifiers.c), identifiers.opts);
|
|
65
|
+
}
|
|
56
66
|
}
|
|
57
67
|
exports.GeneralTrinomConstructor = GeneralTrinomConstructor;
|
|
58
68
|
class GeneralTrinom {
|
|
@@ -90,7 +100,17 @@ class GeneralTrinom {
|
|
|
90
100
|
].sort((a, b) => a.evaluate() - b.evaluate());
|
|
91
101
|
}
|
|
92
102
|
toTree() {
|
|
93
|
-
|
|
103
|
+
const bEv = this.b.evaluate();
|
|
104
|
+
const cEv = this.c.evaluate();
|
|
105
|
+
const highMonom = (0, multiplyNode_1.multiply)(this.a, (0, powerNode_1.square)(this.variable));
|
|
106
|
+
const middleMonom = (0, multiplyNode_1.multiply)(this.b, this.variable);
|
|
107
|
+
if (!bEv && !cEv)
|
|
108
|
+
return highMonom;
|
|
109
|
+
if (!cEv)
|
|
110
|
+
return (0, addNode_1.add)(highMonom, middleMonom);
|
|
111
|
+
if (!bEv)
|
|
112
|
+
return (0, addNode_1.add)(highMonom, this.c);
|
|
113
|
+
return (0, addNode_1.add)(highMonom, (0, addNode_1.add)(middleMonom, this.c));
|
|
94
114
|
}
|
|
95
115
|
toTex() {
|
|
96
116
|
return this.toTree().toTex();
|
|
@@ -98,5 +118,13 @@ class GeneralTrinom {
|
|
|
98
118
|
getCoeffs() {
|
|
99
119
|
return [this.c.evaluate(), this.b.evaluate(), this.a.evaluate()];
|
|
100
120
|
}
|
|
121
|
+
toIdentifiers() {
|
|
122
|
+
return {
|
|
123
|
+
a: this.a.toIdentifiers(),
|
|
124
|
+
b: this.b.toIdentifiers(),
|
|
125
|
+
c: this.c.toIdentifiers(),
|
|
126
|
+
opts: { variable: this.variable },
|
|
127
|
+
};
|
|
128
|
+
}
|
|
101
129
|
}
|
|
102
130
|
exports.GeneralTrinom = GeneralTrinom;
|
package/lib/playground.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"playground.d.ts","sourceRoot":"","sources":["../src/playground.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"playground.d.ts","sourceRoot":"","sources":["../src/playground.ts"],"names":[],"mappings":"AAsCA,eAAO,MAAM,UAAU,YAItB,CAAC"}
|
package/lib/playground.js
CHANGED
|
@@ -1,12 +1,10 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.playground = void 0;
|
|
4
|
-
const
|
|
5
|
-
const fractionNode_1 = require("./tree/nodes/operators/fractionNode");
|
|
6
|
-
const powerNode_1 = require("./tree/nodes/operators/powerNode");
|
|
4
|
+
const rational_1 = require("./math/numbers/rationals/rational");
|
|
7
5
|
const playground = () => {
|
|
8
|
-
console.log((
|
|
9
|
-
|
|
10
|
-
|
|
6
|
+
// console.log(multiply(1.8, frac(3, 7)).simplify().toTex());
|
|
7
|
+
const ratio = new rational_1.Rational(5.4, 7).simplify();
|
|
8
|
+
console.log(ratio.toTree().toTex());
|
|
11
9
|
};
|
|
12
10
|
exports.playground = playground;
|
|
@@ -33,5 +33,6 @@ export declare class FractionNode implements OperatorNode {
|
|
|
33
33
|
simplify(opts?: SimplifyOptions): AlgebraicNode;
|
|
34
34
|
equals(node: AlgebraicNode): boolean;
|
|
35
35
|
toDetailedEvaluation(vars: Record<string, AlgebraicNode>): FractionNode;
|
|
36
|
+
toSimplificationString(): string;
|
|
36
37
|
}
|
|
37
38
|
//# sourceMappingURL=fractionNode.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fractionNode.d.ts","sourceRoot":"","sources":["../../../../src/tree/nodes/operators/fractionNode.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAC/D,OAAO,EAAE,WAAW,EAAE,YAAY,EAAkB,MAAM,gBAAgB,CAAC;AAK3E,OAAO,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAKlE,wBAAgB,cAAc,CAAC,CAAC,EAAE,IAAI,GAAG,CAAC,IAAI,YAAY,CAEzD;AAED,eAAO,MAAM,IAAI,MACZ,aAAa,GAAG,MAAM,GAAG,MAAM,KAC/B,aAAa,GAAG,MAAM,GAAG,MAAM,SAC3B,WAAW,iBAOnB,CAAC;AAEF,qBAAa,YAAa,YAAW,YAAY;IAC/C,IAAI,CAAC,EAAE,WAAW,CAAC;IACnB;;;OAGG;IACH,EAAE,EAAE,WAAW,CAAC;IAChB,SAAS,EAAE,aAAa,CAAC;IACzB,UAAU,EAAE,aAAa,CAAC;IAC1B,IAAI,EAAE,QAAQ,CAAC;IACf,SAAS,EAAE,OAAO,CAAC;gBAEjB,SAAS,EAAE,aAAa,EACxB,UAAU,EAAE,aAAa,EACzB,IAAI,CAAC,EAAE,WAAW;IAUpB,YAAY,IAAI,MAAM;IAItB,aAAa;;;;;;;;;IAQb,UAAU;IAGV,iBAAiB,CAAC,IAAI,CAAC,EAAE,WAAW;IA+BpC,cAAc,CAAC,IAAI,CAAC,EAAE,WAAW,GAAG,MAAM,EAAE;IAI5C,KAAK,IAAI,MAAM;IAsBf,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;IAMtC,QAAQ,CAAC,IAAI,CAAC,EAAE,eAAe,GAAG,aAAa;IAyJ/C,MAAM,CAAC,IAAI,EAAE,aAAa,GAAG,OAAO;IAOpC,oBAAoB,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"fractionNode.d.ts","sourceRoot":"","sources":["../../../../src/tree/nodes/operators/fractionNode.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAC/D,OAAO,EAAE,WAAW,EAAE,YAAY,EAAkB,MAAM,gBAAgB,CAAC;AAK3E,OAAO,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAKlE,wBAAgB,cAAc,CAAC,CAAC,EAAE,IAAI,GAAG,CAAC,IAAI,YAAY,CAEzD;AAED,eAAO,MAAM,IAAI,MACZ,aAAa,GAAG,MAAM,GAAG,MAAM,KAC/B,aAAa,GAAG,MAAM,GAAG,MAAM,SAC3B,WAAW,iBAOnB,CAAC;AAEF,qBAAa,YAAa,YAAW,YAAY;IAC/C,IAAI,CAAC,EAAE,WAAW,CAAC;IACnB;;;OAGG;IACH,EAAE,EAAE,WAAW,CAAC;IAChB,SAAS,EAAE,aAAa,CAAC;IACzB,UAAU,EAAE,aAAa,CAAC;IAC1B,IAAI,EAAE,QAAQ,CAAC;IACf,SAAS,EAAE,OAAO,CAAC;gBAEjB,SAAS,EAAE,aAAa,EACxB,UAAU,EAAE,aAAa,EACzB,IAAI,CAAC,EAAE,WAAW;IAUpB,YAAY,IAAI,MAAM;IAItB,aAAa;;;;;;;;;IAQb,UAAU;IAGV,iBAAiB,CAAC,IAAI,CAAC,EAAE,WAAW;IA+BpC,cAAc,CAAC,IAAI,CAAC,EAAE,WAAW,GAAG,MAAM,EAAE;IAI5C,KAAK,IAAI,MAAM;IAsBf,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;IAMtC,QAAQ,CAAC,IAAI,CAAC,EAAE,eAAe,GAAG,aAAa;IAyJ/C,MAAM,CAAC,IAAI,EAAE,aAAa,GAAG,OAAO;IAOpC,oBAAoB,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC;IAOxD,sBAAsB;CAQvB"}
|
|
@@ -236,5 +236,15 @@ class FractionNode {
|
|
|
236
236
|
toDetailedEvaluation(vars) {
|
|
237
237
|
return new FractionNode(this.leftChild.toDetailedEvaluation(vars), this.rightChild.toDetailedEvaluation(vars));
|
|
238
238
|
}
|
|
239
|
+
toSimplificationString() {
|
|
240
|
+
const simplified = this.simplify();
|
|
241
|
+
const thisTex = this.toTex();
|
|
242
|
+
const simpTex = simplified.toTex();
|
|
243
|
+
const isSimplified = thisTex === simpTex;
|
|
244
|
+
if (isSimplified)
|
|
245
|
+
return thisTex;
|
|
246
|
+
else
|
|
247
|
+
return `${thisTex} = ${simpTex}`;
|
|
248
|
+
}
|
|
239
249
|
}
|
|
240
250
|
exports.FractionNode = FractionNode;
|
|
@@ -4,6 +4,7 @@ import { AlgebraicNode, SimplifyOptions } from "../algebraicNode";
|
|
|
4
4
|
export declare function isPowerNode(a: Node): a is PowerNode;
|
|
5
5
|
export declare function isSquareNode(a: Node): a is SquareNode;
|
|
6
6
|
export declare const square: (a: AlgebraicNode | number | string) => SquareNode;
|
|
7
|
+
export declare const power: (a: AlgebraicNode | number | string, b: AlgebraicNode | number | string, opts?: NodeOptions) => PowerNode;
|
|
7
8
|
export declare class PowerNode implements OperatorNode {
|
|
8
9
|
opts?: NodeOptions;
|
|
9
10
|
id: OperatorIds;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"powerNode.d.ts","sourceRoot":"","sources":["../../../../src/tree/nodes/operators/powerNode.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAC/D,OAAO,EAAE,WAAW,EAAE,YAAY,EAAkB,MAAM,gBAAgB,CAAC;AAG3E,OAAO,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAGlE,wBAAgB,WAAW,CAAC,CAAC,EAAE,IAAI,GAAG,CAAC,IAAI,SAAS,CAEnD;AAED,wBAAgB,YAAY,CAAC,CAAC,EAAE,IAAI,GAAG,CAAC,IAAI,UAAU,CAErD;AACD,eAAO,MAAM,MAAM,MAAO,aAAa,GAAG,MAAM,GAAG,MAAM,eAKxD,CAAC;AAEF,qBAAa,SAAU,YAAW,YAAY;IAC5C,IAAI,CAAC,EAAE,WAAW,CAAC;IACnB,EAAE,EAAE,WAAW,CAAC;IAChB,SAAS,EAAE,aAAa,CAAC;IACzB,UAAU,EAAE,aAAa,CAAC;IAC1B,IAAI,EAAE,QAAQ,CAAC;IACf,SAAS,EAAE,OAAO,CAAC;gBAEjB,SAAS,EAAE,aAAa,EACxB,UAAU,EAAE,aAAa,EACzB,IAAI,CAAC,EAAE,WAAW;IAUpB,YAAY,IAAI,MAAM;IAGtB,aAAa;;;;;;;;;IAOb,iBAAiB;IAqBjB,cAAc,IAAI,MAAM,EAAE;IAI1B,KAAK,IAAI,MAAM;IAuBf,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;IAMtC,oBAAoB,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC;IAOxD,QAAQ,CAAC,IAAI,CAAC,EAAE,eAAe,GAAG,aAAa;
|
|
1
|
+
{"version":3,"file":"powerNode.d.ts","sourceRoot":"","sources":["../../../../src/tree/nodes/operators/powerNode.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAC/D,OAAO,EAAE,WAAW,EAAE,YAAY,EAAkB,MAAM,gBAAgB,CAAC;AAG3E,OAAO,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAGlE,wBAAgB,WAAW,CAAC,CAAC,EAAE,IAAI,GAAG,CAAC,IAAI,SAAS,CAEnD;AAED,wBAAgB,YAAY,CAAC,CAAC,EAAE,IAAI,GAAG,CAAC,IAAI,UAAU,CAErD;AACD,eAAO,MAAM,MAAM,MAAO,aAAa,GAAG,MAAM,GAAG,MAAM,eAKxD,CAAC;AAEF,eAAO,MAAM,KAAK,MACb,aAAa,GAAG,MAAM,GAAG,MAAM,KAC/B,aAAa,GAAG,MAAM,GAAG,MAAM,SAC3B,WAAW,cAOnB,CAAC;AAEF,qBAAa,SAAU,YAAW,YAAY;IAC5C,IAAI,CAAC,EAAE,WAAW,CAAC;IACnB,EAAE,EAAE,WAAW,CAAC;IAChB,SAAS,EAAE,aAAa,CAAC;IACzB,UAAU,EAAE,aAAa,CAAC;IAC1B,IAAI,EAAE,QAAQ,CAAC;IACf,SAAS,EAAE,OAAO,CAAC;gBAEjB,SAAS,EAAE,aAAa,EACxB,UAAU,EAAE,aAAa,EACzB,IAAI,CAAC,EAAE,WAAW;IAUpB,YAAY,IAAI,MAAM;IAGtB,aAAa;;;;;;;;;IAOb,iBAAiB;IAqBjB,cAAc,IAAI,MAAM,EAAE;IAI1B,KAAK,IAAI,MAAM;IAuBf,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;IAMtC,oBAAoB,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC;IAOxD,QAAQ,CAAC,IAAI,CAAC,EAAE,eAAe,GAAG,aAAa;IA8C/C,MAAM,CAAC,IAAI,EAAE,aAAa,GAAG,OAAO;CAOrC;AAED,qBAAa,UAAW,SAAQ,SAAS;gBAC3B,KAAK,EAAE,aAAa,EAAE,IAAI,CAAC,EAAE,WAAW;CAIrD"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.SquareNode = exports.PowerNode = exports.square = exports.isSquareNode = exports.isPowerNode = void 0;
|
|
3
|
+
exports.SquareNode = exports.PowerNode = exports.power = exports.square = exports.isSquareNode = exports.isPowerNode = void 0;
|
|
4
4
|
// import { pow } from "mathjs";
|
|
5
5
|
const node_1 = require("../node");
|
|
6
6
|
const operatorNode_1 = require("./operatorNode");
|
|
@@ -20,6 +20,12 @@ const square = (a) => {
|
|
|
20
20
|
return new SquareNode(nodeA);
|
|
21
21
|
};
|
|
22
22
|
exports.square = square;
|
|
23
|
+
const power = (a, b, opts) => {
|
|
24
|
+
const nodeA = typeof a === "number" ? a.toTree() : typeof a === "string" ? a.toTree() : a;
|
|
25
|
+
const nodeB = typeof b === "number" ? b.toTree() : typeof b === "string" ? b.toTree() : b;
|
|
26
|
+
return new PowerNode(nodeA, nodeB, opts);
|
|
27
|
+
};
|
|
28
|
+
exports.power = power;
|
|
23
29
|
class PowerNode {
|
|
24
30
|
constructor(leftChild, rightChild, opts) {
|
|
25
31
|
this.id = operatorNode_1.OperatorIds.power;
|
|
@@ -99,6 +105,8 @@ class PowerNode {
|
|
|
99
105
|
const rightSimplified = this.rightChild.simplify(opts);
|
|
100
106
|
const copy = new PowerNode(leftSimplified, rightSimplified, this.opts);
|
|
101
107
|
//! temporaire
|
|
108
|
+
if ((0, numberNode_1.isNumberNode)(leftSimplified) && leftSimplified.value === 1)
|
|
109
|
+
return (1).toTree();
|
|
102
110
|
if ((0, numberNode_1.isNumberNode)(rightSimplified) && rightSimplified.value === 0) {
|
|
103
111
|
return new numberNode_1.NumberNode(1);
|
|
104
112
|
}
|
|
@@ -116,6 +124,7 @@ class PowerNode {
|
|
|
116
124
|
if ((0, multiplyNode_1.isMultiplyNode)(leftSimplified)) {
|
|
117
125
|
return new multiplyNode_1.MultiplyNode(new PowerNode(leftSimplified.leftChild, rightSimplified), new PowerNode(leftSimplified.rightChild, rightSimplified)).simplify(opts);
|
|
118
126
|
}
|
|
127
|
+
//! j'aime po ce truc
|
|
119
128
|
if (!opts?.keepPowers &&
|
|
120
129
|
(0, numberNode_1.isNumberNode)(copy.rightChild) &&
|
|
121
130
|
copy.rightChild.value === 2) {
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"powerParser.d.ts","sourceRoot":"","sources":["../../../src/tree/parsers/powerParser.ts"],"names":[],"mappings":"AAKA,eAAO,MAAM,WAAW,QAAS,MAAM,sHAgBtC,CAAC"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.powerParser = void 0;
|
|
4
|
+
const numberNode_1 = require("../nodes/numbers/numberNode");
|
|
5
|
+
const fractionNode_1 = require("../nodes/operators/fractionNode");
|
|
6
|
+
const powerNode_1 = require("../nodes/operators/powerNode");
|
|
7
|
+
const latexParser_1 = require("./latexParser");
|
|
8
|
+
const powerParser = (ans) => {
|
|
9
|
+
try {
|
|
10
|
+
const parsed = (0, latexParser_1.parseAlgebraic)(ans);
|
|
11
|
+
if (!parsed)
|
|
12
|
+
return false;
|
|
13
|
+
if ((0, powerNode_1.isPowerNode)(parsed))
|
|
14
|
+
return parsed;
|
|
15
|
+
if ((0, fractionNode_1.isFractionNode)(parsed) &&
|
|
16
|
+
(0, numberNode_1.isNumberNode)(parsed.leftChild) &&
|
|
17
|
+
parsed.leftChild.value === 1 &&
|
|
18
|
+
(0, powerNode_1.isPowerNode)(parsed.rightChild))
|
|
19
|
+
return parsed;
|
|
20
|
+
return false;
|
|
21
|
+
}
|
|
22
|
+
catch (err) {
|
|
23
|
+
return false;
|
|
24
|
+
}
|
|
25
|
+
};
|
|
26
|
+
exports.powerParser = powerParser;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rationalParser.d.ts","sourceRoot":"","sources":["../../../src/tree/parsers/rationalParser.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAQ,MAAM,iCAAiC,CAAC;AAGrE,eAAO,MAAM,cAAc,QAAS,MAAM,+
|
|
1
|
+
{"version":3,"file":"rationalParser.d.ts","sourceRoot":"","sources":["../../../src/tree/parsers/rationalParser.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAQ,MAAM,iCAAiC,CAAC;AAGrE,eAAO,MAAM,cAAc,QAAS,MAAM,+IAwBzC,CAAC"}
|
|
@@ -7,7 +7,7 @@ const numberParser_1 = require("./numberParser");
|
|
|
7
7
|
const rationalParser = (ans) => {
|
|
8
8
|
const nb = (0, numberParser_1.numberParser)(ans);
|
|
9
9
|
if (nb !== false) {
|
|
10
|
-
return nb.toTree();
|
|
10
|
+
return nb.unfrenchify().toTree();
|
|
11
11
|
}
|
|
12
12
|
if (!ans.includes("\\frac"))
|
|
13
13
|
return false;
|
|
@@ -32,8 +32,5 @@ const rationalParser = (ans) => {
|
|
|
32
32
|
const nodeFracs = fracs.map((e) => e.unfrenchify().toTree());
|
|
33
33
|
return (0, oppositeNode_1.opposite)((0, fractionNode_1.frac)(nodeFracs[0], nodeFracs[1]));
|
|
34
34
|
}
|
|
35
|
-
// const nb = ans.unfrenchify();
|
|
36
|
-
// if (isNaN(nb)) return false;
|
|
37
|
-
// return nb.frenchify();
|
|
38
35
|
};
|
|
39
36
|
exports.rationalParser = rationalParser;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"spacePointParser.d.ts","sourceRoot":"","sources":["../../../src/tree/parsers/spacePointParser.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,gCAAgC,CAAC;
|
|
1
|
+
{"version":3,"file":"spacePointParser.d.ts","sourceRoot":"","sources":["../../../src/tree/parsers/spacePointParser.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,gCAAgC,CAAC;AAI5D,eAAO,MAAM,gBAAgB,QAAS,MAAM,uBAW3C,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"spaceVectorParser.d.ts","sourceRoot":"","sources":["../../../src/tree/parsers/spaceVectorParser.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"spaceVectorParser.d.ts","sourceRoot":"","sources":["../../../src/tree/parsers/spaceVectorParser.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,iCAAiC,CAAC;AAE9D,eAAO,MAAM,iBAAiB,QAAS,MAAM,wBAW5C,CAAC"}
|