pimath 0.0.19 → 0.0.23

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.
@@ -495,9 +495,9 @@ class Polynom {
495
495
  resultPolynom.add(m.clone());
496
496
  }
497
497
  else {
498
- pow = +m.literal[letter];
498
+ pow = m.literal[letter].clone();
499
499
  delete m.literal[letter];
500
- resultPolynom.add(P.clone().pow(pow).multiply(m));
500
+ resultPolynom.add(P.clone().pow(Math.abs(pow.numerator)).multiply(m));
501
501
  }
502
502
  }
503
503
  this._monoms = resultPolynom.reduce().reorder().monoms;
@@ -1 +1 @@
1
- {"version":3,"file":"polynom.js","sourceRoot":"","sources":["../../../src/maths/algebra/polynom.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"polynom.js","sourceRoot":"","sources":["../../../src/maths/algebra/polynom.ts"],"names":[],"mappings":"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"}
@@ -52,6 +52,7 @@ export declare class Line {
52
52
  clone: () => Line;
53
53
  isParellelTo: (line: Line) => Boolean;
54
54
  isSameAs: (line: Line) => Boolean;
55
+ simplify: () => Line;
55
56
  simplifyDirection: () => Line;
56
57
  intersection: (line: Line) => {
57
58
  point: Point;
@@ -65,8 +66,8 @@ export declare class Line {
65
66
  tex: string;
66
67
  };
67
68
  hitSegment(A: Point, B: Point): boolean;
68
- getValueAtX: (value: Fraction) => Fraction;
69
- getValueAtY: (value: Fraction) => Fraction;
69
+ getValueAtX: (value: Fraction | number) => Fraction;
70
+ getValueAtY: (value: Fraction | number) => Fraction;
70
71
  canonicalAsFloatCoefficient(decimals: number): string;
71
72
  }
72
73
  export {};
@@ -137,6 +137,14 @@ class Line {
137
137
  (values[2] instanceof coefficients_1.Fraction || typeof values[2] === 'number')) {
138
138
  return this.parseByCoefficient(values[0], values[1], values[2]);
139
139
  }
140
+ else if (values[0] instanceof point_1.Point && values[1] instanceof vector_1.Vector) {
141
+ if (values[2] === LinePropriety.Perpendicular) {
142
+ return this.parseByPointAndNormal(values[0], values[1]);
143
+ }
144
+ else if (values[2] === LinePropriety.Parallel) {
145
+ return this.parseByPointAndVector(values[0], values[1]);
146
+ }
147
+ }
140
148
  }
141
149
  console.log('Someting wrong happend while creating the line');
142
150
  return this;
@@ -208,6 +216,11 @@ class Line {
208
216
  isSameAs = (line) => {
209
217
  return this.slope.isEqual(line.slope) && this.height.isEqual(line.height);
210
218
  };
219
+ simplify = () => {
220
+ let lcm = numeric_1.Numeric.lcm(this._a.denominator, this._b.denominator, this._c.denominator), gcd = numeric_1.Numeric.gcd(this._a.numerator, this._b.numerator, this._c.numerator);
221
+ this.parseByCoefficient(this._a.denominator * lcm / gcd, this._b.denominator * lcm / gcd, this._c.denominator * lcm / gcd);
222
+ return this;
223
+ };
211
224
  simplifyDirection = () => {
212
225
  let lcm = numeric_1.Numeric.lcm(this._d.x.denominator, this._d.y.denominator), gcd = numeric_1.Numeric.gcd(this._d.x.numerator, this._d.y.numerator);
213
226
  this._d.x.multiply(lcm).divide(gcd);
@@ -277,16 +290,16 @@ class Line {
277
290
  return false;
278
291
  }
279
292
  getValueAtX = (value) => {
280
- const equ = this.equation.clone().isolate('y');
293
+ const equ = this.equation.clone().isolate('y'), F = new coefficients_1.Fraction(value);
281
294
  if (equ instanceof algebra_1.Equation) {
282
- return equ.right.evaluate({ x: value });
295
+ return equ.right.evaluate({ x: F });
283
296
  }
284
297
  return;
285
298
  };
286
299
  getValueAtY = (value) => {
287
- const equ = this.equation.clone().isolate('x');
300
+ const equ = this.equation.clone().isolate('x'), F = new coefficients_1.Fraction(value);
288
301
  if (equ instanceof algebra_1.Equation) {
289
- return equ.right.evaluate({ y: value });
302
+ return equ.right.evaluate({ y: F });
290
303
  }
291
304
  return;
292
305
  };
@@ -1 +1 @@
1
- {"version":3,"file":"line.js","sourceRoot":"","sources":["../../../src/maths/geometry/line.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"line.js","sourceRoot":"","sources":["../../../src/maths/geometry/line.ts"],"names":[],"mappings":"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"}
@@ -30,17 +30,29 @@ var Random;
30
30
  return (new rndFraction_1.rndFraction(config)).generate();
31
31
  }
32
32
  Random.fraction = fraction;
33
- function number(from, to) { return rndHelpers_1.rndHelpers.randomInt(from, to); }
33
+ function number(from, to) {
34
+ return rndHelpers_1.rndHelpers.randomInt(from, to);
35
+ }
34
36
  Random.number = number;
35
- function numberSym(max, allowZero) { return rndHelpers_1.rndHelpers.randomIntSym(max, allowZero); }
37
+ function numberSym(max, allowZero) {
38
+ return rndHelpers_1.rndHelpers.randomIntSym(max, allowZero);
39
+ }
36
40
  Random.numberSym = numberSym;
37
- function bool(percent) { return rndHelpers_1.rndHelpers.randomBool(percent); }
41
+ function bool(percent) {
42
+ return rndHelpers_1.rndHelpers.randomBool(percent);
43
+ }
38
44
  Random.bool = bool;
39
- function array(arr, number) { return rndHelpers_1.rndHelpers.randomArray(arr, number); }
45
+ function array(arr, number) {
46
+ return rndHelpers_1.rndHelpers.randomArray(arr, number);
47
+ }
40
48
  Random.array = array;
41
- function item(arr) { return rndHelpers_1.rndHelpers.randomItem(arr); }
49
+ function item(arr) {
50
+ return rndHelpers_1.rndHelpers.randomItem(arr);
51
+ }
42
52
  Random.item = item;
43
- function shuffle(arr) { rndHelpers_1.rndHelpers.shuffleArray(arr); }
53
+ function shuffle(arr) {
54
+ rndHelpers_1.rndHelpers.shuffleArray(arr);
55
+ }
44
56
  Random.shuffle = shuffle;
45
57
  })(Random = exports.Random || (exports.Random = {}));
46
58
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/maths/random/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;AAAA,6CAAwC;AACxC,yCAAoC;AACpC,6CAAwC;AAIxC,+CAA0C;AAE1C,6CAA0B;AAC1B,IAAiB,MAAM,CAmBtB;AAnBD,WAAiB,MAAM;IACnB,SAAgB,OAAO,CAAC,MAA4B;QAChD,OAAO,CAAC,IAAI,uBAAU,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAA;IAC9C,CAAC;IAFe,cAAO,UAEtB,CAAA;IAED,SAAgB,KAAK,CAAC,MAA0B;QAC5C,OAAO,CAAC,IAAI,mBAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAA;IAC5C,CAAC;IAFe,YAAK,QAEpB,CAAA;IAED,SAAgB,QAAQ,CAAC,MAAgC;QACrD,OAAO,CAAC,IAAI,yBAAW,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAA;IAC/C,CAAC;IAFe,eAAQ,WAEvB,CAAA;IAED,SAAgB,MAAM,CAAC,IAAW,EAAE,EAAS,IAAW,OAAO,uBAAU,CAAC,SAAS,CAAC,IAAI,EAAC,EAAE,CAAC,CAAA,CAAA,CAAC;IAA7E,aAAM,SAAuE,CAAA;IAC7F,SAAgB,SAAS,CAAC,GAAU,EAAE,SAAkB,IAAW,OAAO,uBAAU,CAAC,YAAY,CAAC,GAAG,EAAE,SAAS,CAAC,CAAA,CAAA,CAAC;IAAlG,gBAAS,YAAyF,CAAA;IAClH,SAAgB,IAAI,CAAC,OAAe,IAAY,OAAO,uBAAU,CAAC,UAAU,CAAC,OAAO,CAAC,CAAA,CAAA,CAAC;IAAtE,WAAI,OAAkE,CAAA;IACtF,SAAgB,KAAK,CAAC,GAAS,EAAE,MAAc,IAAU,OAAO,uBAAU,CAAC,WAAW,CAAC,GAAG,EAAE,MAAM,CAAC,CAAA,CAAA,CAAC;IAApF,YAAK,QAA+E,CAAA;IACpG,SAAgB,IAAI,CAAC,GAAS,IAAQ,OAAO,uBAAU,CAAC,UAAU,CAAC,GAAG,CAAC,CAAA,CAAA,CAAC;IAAxD,WAAI,OAAoD,CAAA;IACxE,SAAgB,OAAO,CAAC,GAAS,IAAQ,uBAAU,CAAC,YAAY,CAAC,GAAG,CAAC,CAAA,CAAA,CAAC;IAAtD,cAAO,UAA+C,CAAA;AAC1E,CAAC,EAnBgB,MAAM,GAAN,cAAM,KAAN,cAAM,QAmBtB"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/maths/random/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;AAAA,6CAAwC;AACxC,yCAAoC;AACpC,6CAAwC;AAIxC,+CAA0C;AAE1C,6CAA0B;AAE1B,IAAiB,MAAM,CAoCtB;AApCD,WAAiB,MAAM;IACnB,SAAgB,OAAO,CAAC,MAA4B;QAChD,OAAO,CAAC,IAAI,uBAAU,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAA;IAC9C,CAAC;IAFe,cAAO,UAEtB,CAAA;IAED,SAAgB,KAAK,CAAC,MAA0B;QAC5C,OAAO,CAAC,IAAI,mBAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAA;IAC5C,CAAC;IAFe,YAAK,QAEpB,CAAA;IAED,SAAgB,QAAQ,CAAC,MAAgC;QACrD,OAAO,CAAC,IAAI,yBAAW,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAA;IAC/C,CAAC;IAFe,eAAQ,WAEvB,CAAA;IAED,SAAgB,MAAM,CAAC,IAAY,EAAE,EAAU;QAC3C,OAAO,uBAAU,CAAC,SAAS,CAAC,IAAI,EAAE,EAAE,CAAC,CAAA;IACzC,CAAC;IAFe,aAAM,SAErB,CAAA;IAED,SAAgB,SAAS,CAAC,GAAW,EAAE,SAAmB;QACtD,OAAO,uBAAU,CAAC,YAAY,CAAC,GAAG,EAAE,SAAS,CAAC,CAAA;IAClD,CAAC;IAFe,gBAAS,YAExB,CAAA;IAED,SAAgB,IAAI,CAAC,OAAgB;QACjC,OAAO,uBAAU,CAAC,UAAU,CAAC,OAAO,CAAC,CAAA;IACzC,CAAC;IAFe,WAAI,OAEnB,CAAA;IAED,SAAgB,KAAK,CAAC,GAAU,EAAE,MAAe;QAC7C,OAAO,uBAAU,CAAC,WAAW,CAAC,GAAG,EAAE,MAAM,CAAC,CAAA;IAC9C,CAAC;IAFe,YAAK,QAEpB,CAAA;IAED,SAAgB,IAAI,CAAC,GAAU;QAC3B,OAAO,uBAAU,CAAC,UAAU,CAAC,GAAG,CAAC,CAAA;IACrC,CAAC;IAFe,WAAI,OAEnB,CAAA;IAED,SAAgB,OAAO,CAAC,GAAU;QAC9B,uBAAU,CAAC,YAAY,CAAC,GAAG,CAAC,CAAA;IAChC,CAAC;IAFe,cAAO,UAEtB,CAAA;AACL,CAAC,EApCgB,MAAM,GAAN,cAAM,KAAN,cAAM,QAoCtB"}
@@ -10,7 +10,8 @@ class rndFraction extends randomCore_1.randomCore {
10
10
  this._defaultConfig = {
11
11
  negative: true,
12
12
  reduced: true,
13
- zero: true
13
+ zero: true,
14
+ natural: false
14
15
  };
15
16
  this._config = this.mergeConfig(userConfig, this._defaultConfig);
16
17
  }
@@ -22,7 +23,12 @@ class rndFraction extends randomCore_1.randomCore {
22
23
  else {
23
24
  Q.numerator = index_1.Random.number(this._config.zero ? 0 : 1, 10);
24
25
  }
25
- Q.denominator = index_1.Random.number(1, 10);
26
+ if (this._config.natural) {
27
+ Q.denominator = 1;
28
+ }
29
+ else {
30
+ Q.denominator = index_1.Random.number(1, 10);
31
+ }
26
32
  return this._config.reduced ? Q.reduce() : Q;
27
33
  };
28
34
  }
@@ -1 +1 @@
1
- {"version":3,"file":"rndFraction.js","sourceRoot":"","sources":["../../../src/maths/random/rndFraction.ts"],"names":[],"mappings":";;;AAAA,6CAAwC;AAExC,kDAAyC;AACzC,mCAA+B;AAK/B,MAAa,WAAY,SAAQ,uBAAU;IAIvC,YAAY,UAAoC;QAC5C,KAAK,EAAE,CAAC;QAER,IAAI,CAAC,cAAc,GAAG;YAClB,QAAQ,EAAE,IAAI;YACd,OAAO,EAAE,IAAI;YACb,IAAI,EAAE,IAAI;SACb,CAAA;QAED,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,WAAW,CAAC,UAAU,EAAE,IAAI,CAAC,cAAc,CAAC,CAAA;IACpE,CAAC;IAED,QAAQ,GAAG,GAAa,EAAE;QACtB,IAAI,CAAC,GAAG,IAAI,uBAAQ,EAAE,CAAA;QAEtB,IAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAC;YACrB,CAAC,CAAC,SAAS,GAAG,cAAM,CAAC,SAAS,CAAC,EAAE,EAAE,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA;SACxD;aAAK;YACF,CAAC,CAAC,SAAS,GAAG,cAAM,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAA;SAC7D;QACD,CAAC,CAAC,WAAW,GAAG,cAAM,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,CAAC,CAAA;QAEpC,OAAO,IAAI,CAAC,OAAO,CAAC,OAAO,CAAA,CAAC,CAAA,CAAC,CAAC,MAAM,EAAE,CAAA,CAAC,CAAA,CAAC,CAAA;IAC5C,CAAC,CAAA;CACJ;AA5BD,kCA4BC"}
1
+ {"version":3,"file":"rndFraction.js","sourceRoot":"","sources":["../../../src/maths/random/rndFraction.ts"],"names":[],"mappings":";;;AAAA,6CAAwC;AAExC,kDAAyC;AACzC,mCAA+B;AAK/B,MAAa,WAAY,SAAQ,uBAAU;IAIvC,YAAY,UAAoC;QAC5C,KAAK,EAAE,CAAC;QAER,IAAI,CAAC,cAAc,GAAG;YAClB,QAAQ,EAAE,IAAI;YACd,OAAO,EAAE,IAAI;YACb,IAAI,EAAE,IAAI;YACV,OAAO,EAAE,KAAK;SACjB,CAAA;QAED,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,WAAW,CAAC,UAAU,EAAE,IAAI,CAAC,cAAc,CAAC,CAAA;IACpE,CAAC;IAED,QAAQ,GAAG,GAAa,EAAE;QACtB,IAAI,CAAC,GAAG,IAAI,uBAAQ,EAAE,CAAA;QAEtB,IAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAC;YACrB,CAAC,CAAC,SAAS,GAAG,cAAM,CAAC,SAAS,CAAC,EAAE,EAAE,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA;SACxD;aAAK;YACF,CAAC,CAAC,SAAS,GAAG,cAAM,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAA;SAC7D;QACD,IAAG,IAAI,CAAC,OAAO,CAAC,OAAO,EAAC;YACpB,CAAC,CAAC,WAAW,GAAG,CAAC,CAAA;SACpB;aAAK;YACF,CAAC,CAAC,WAAW,GAAG,cAAM,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,CAAC,CAAA;SACvC;QAED,OAAO,IAAI,CAAC,OAAO,CAAC,OAAO,CAAA,CAAC,CAAA,CAAC,CAAC,MAAM,EAAE,CAAA,CAAC,CAAA,CAAC,CAAA;IAC5C,CAAC,CAAA;CACJ;AAjCD,kCAiCC"}
@@ -19,7 +19,8 @@ class rndMonom extends randomCore_1.randomCore {
19
19
  let M = new monom_1.Monom();
20
20
  M.coefficient = index_1.Random.fraction({
21
21
  zero: this._config.zero,
22
- reduced: true
22
+ reduced: true,
23
+ natural: !this._config.fraction
23
24
  });
24
25
  if (this._config.letters.length > 1) {
25
26
  for (let L of this._config.letters.split('')) {
@@ -1 +1 @@
1
- {"version":3,"file":"rndMonom.js","sourceRoot":"","sources":["../../../src/maths/random/rndMonom.ts"],"names":[],"mappings":";;;AAAA,6CAAwC;AAExC,mCAA+B;AAC/B,4CAAuC;AAKnC,MAAa,QAAS,SAAQ,uBAAU;IAIpC,YAAY,UAA8B;QACtC,KAAK,EAAE,CAAC;QAER,IAAI,CAAC,cAAc,GAAG;YAClB,OAAO,EAAE,GAAG;YACZ,MAAM,EAAE,CAAC;YACT,QAAQ,EAAE,IAAI;YACd,IAAI,EAAE,KAAK;SACd,CAAA;QAED,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,WAAW,CAAC,UAAU,EAAE,IAAI,CAAC,cAAc,CAAC,CAAA;IACpE,CAAC;IAED,QAAQ,GAAG,GAAU,EAAE;QAEnB,IAAI,CAAC,GAAG,IAAI,aAAK,EAAE,CAAA;QAGnB,CAAC,CAAC,WAAW,GAAG,cAAM,CAAC,QAAQ,CAAC;YAC5B,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,IAAI;YACvB,OAAO,EAAE,IAAI;SAChB,CAAC,CAAA;QAGF,IAAI,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE;YAEjC,KAAK,IAAI,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,EAAE;gBAC1C,CAAC,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;aACrB;YACD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;gBAC1C,MAAM,CAAC,GAAG,cAAM,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAA;gBACrD,CAAC,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAA;aAC7C;SACJ;aAAM;YACH,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAA;SACzD;QAED,OAAO,CAAC,CAAA;IACZ,CAAC,CAAA;CACJ;AA3CD,4BA2CC"}
1
+ {"version":3,"file":"rndMonom.js","sourceRoot":"","sources":["../../../src/maths/random/rndMonom.ts"],"names":[],"mappings":";;;AAAA,6CAAwC;AAExC,mCAA+B;AAC/B,4CAAuC;AAKnC,MAAa,QAAS,SAAQ,uBAAU;IAIpC,YAAY,UAA8B;QACtC,KAAK,EAAE,CAAC;QAER,IAAI,CAAC,cAAc,GAAG;YAClB,OAAO,EAAE,GAAG;YACZ,MAAM,EAAE,CAAC;YACT,QAAQ,EAAE,IAAI;YACd,IAAI,EAAE,KAAK;SACd,CAAA;QAED,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,WAAW,CAAC,UAAU,EAAE,IAAI,CAAC,cAAc,CAAC,CAAA;IACpE,CAAC;IAED,QAAQ,GAAG,GAAU,EAAE;QAEnB,IAAI,CAAC,GAAG,IAAI,aAAK,EAAE,CAAA;QAGnB,CAAC,CAAC,WAAW,GAAG,cAAM,CAAC,QAAQ,CAAC;YAC5B,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,IAAI;YACvB,OAAO,EAAE,IAAI;YACb,OAAO,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ;SAClC,CAAC,CAAA;QAGF,IAAI,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE;YAEjC,KAAK,IAAI,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,EAAE;gBAC1C,CAAC,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;aACrB;YACD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;gBAC1C,MAAM,CAAC,GAAG,cAAM,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAA;gBACrD,CAAC,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAA;aAC7C;SACJ;aAAM;YACH,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAA;SACzD;QAED,OAAO,CAAC,CAAA;IACZ,CAAC,CAAA;CACJ;AA5CD,4BA4CC"}
@@ -2,6 +2,7 @@ export declare type randomCoefficientConfig = {
2
2
  negative?: boolean;
3
3
  reduced?: boolean;
4
4
  zero?: boolean;
5
+ natural?: boolean;
5
6
  };
6
7
  export declare type randomMonomConfig = {
7
8
  letters?: string;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "pimath",
3
- "version": "0.0.19",
3
+ "version": "0.0.23",
4
4
  "description": "A math library for teacher :)",
5
5
  "scripts": {
6
6
  "test": "mocha -r ts-node/register 'tests/**/*.test.ts'",
@@ -748,7 +748,7 @@ export class Polynom {
748
748
  * @param P
749
749
  */
750
750
  replaceBy = (letter: string, P: Polynom): Polynom => {
751
- let pow: number;
751
+ let pow: Fraction;
752
752
  const resultPolynom: Polynom = new Polynom().zero();
753
753
 
754
754
  for (const m of this.monoms) {
@@ -757,10 +757,11 @@ export class Polynom {
757
757
  } else {
758
758
  // We have found a setLetter.
759
759
  // Get the power and reset it.
760
- pow = +m.literal[letter];
760
+ pow = m.literal[letter].clone();
761
761
  delete m.literal[letter];
762
762
 
763
- resultPolynom.add(P.clone().pow(pow).multiply(m));
763
+ // TODO: replaceBy works only with positive and natural pow
764
+ resultPolynom.add(P.clone().pow(Math.abs(pow.numerator)).multiply(m));
764
765
  }
765
766
  }
766
767
 
@@ -189,6 +189,14 @@ export class Line {
189
189
  (values[2] instanceof Fraction || typeof values[2] === 'number')
190
190
  ) {
191
191
  return this.parseByCoefficient(values[0], values[1], values[2]);
192
+ }else if (
193
+ values[0] instanceof Point && values[1] instanceof Vector
194
+ ){
195
+ if(values[2] === LinePropriety.Perpendicular){
196
+ return this.parseByPointAndNormal(values[0], values[1])
197
+ }else if (values[2] === LinePropriety.Parallel){
198
+ return this.parseByPointAndVector(values[0], values[1])
199
+ }
192
200
  }
193
201
  }
194
202
 
@@ -308,6 +316,19 @@ export class Line {
308
316
  isSameAs = (line: Line): Boolean => {
309
317
  return this.slope.isEqual(line.slope) && this.height.isEqual(line.height);
310
318
  }
319
+ simplify = (): Line => {
320
+ let lcm = Numeric.lcm(this._a.denominator, this._b.denominator, this._c.denominator),
321
+ gcd = Numeric.gcd(this._a.numerator, this._b.numerator, this._c.numerator);
322
+
323
+ this.parseByCoefficient(
324
+ this._a.denominator*lcm/gcd,
325
+ this._b.denominator*lcm/gcd,
326
+ this._c.denominator*lcm/gcd,
327
+ )
328
+
329
+ return this
330
+ }
331
+
311
332
  simplifyDirection = (): Line => {
312
333
  let lcm = Numeric.lcm(this._d.x.denominator, this._d.y.denominator),
313
334
  gcd = Numeric.gcd(this._d.x.numerator, this._d.y.numerator);
@@ -411,19 +432,21 @@ export class Line {
411
432
  return false;
412
433
  }
413
434
 
414
- getValueAtX = (value: Fraction): Fraction => {
415
- const equ = this.equation.clone().isolate('y')
435
+ getValueAtX = (value: Fraction|number): Fraction => {
436
+ const equ = this.equation.clone().isolate('y'),
437
+ F = new Fraction(value)
416
438
 
417
439
  if(equ instanceof Equation){
418
- return equ.right.evaluate({x: value})
440
+ return equ.right.evaluate({x: F})
419
441
  }
420
442
  return
421
443
  }
422
- getValueAtY = (value: Fraction): Fraction => {
423
- const equ = this.equation.clone().isolate('x')
444
+ getValueAtY = (value: Fraction|number): Fraction => {
445
+ const equ = this.equation.clone().isolate('x'),
446
+ F = new Fraction(value)
424
447
 
425
448
  if(equ instanceof Equation){
426
- return equ.right.evaluate({y: value})
449
+ return equ.right.evaluate({y: F})
427
450
  }
428
451
  return
429
452
  }
@@ -7,6 +7,7 @@ import {Fraction} from "../coefficients";
7
7
  import {rndFraction} from "./rndFraction";
8
8
 
9
9
  export * from "./rndTypes"
10
+
10
11
  export namespace Random {
11
12
  export function polynom(config?: randomPolynomConfig): Polynom {
12
13
  return (new rndPolynom(config)).generate()
@@ -20,10 +21,27 @@ export namespace Random {
20
21
  return (new rndFraction(config)).generate()
21
22
  }
22
23
 
23
- export function number(from:number, to:number):number { return rndHelpers.randomInt(from,to)}
24
- export function numberSym(max:number, allowZero?:boolean):number { return rndHelpers.randomIntSym(max, allowZero)}
25
- export function bool(percent?:number):boolean { return rndHelpers.randomBool(percent)}
26
- export function array(arr:any[], number?:number):any[] { return rndHelpers.randomArray(arr, number)}
27
- export function item(arr:any[]):any { return rndHelpers.randomItem(arr)}
28
- export function shuffle(arr:any[]):any { rndHelpers.shuffleArray(arr)}
24
+ export function number(from: number, to: number): number {
25
+ return rndHelpers.randomInt(from, to)
26
+ }
27
+
28
+ export function numberSym(max: number, allowZero?: boolean): number {
29
+ return rndHelpers.randomIntSym(max, allowZero)
30
+ }
31
+
32
+ export function bool(percent?: number): boolean {
33
+ return rndHelpers.randomBool(percent)
34
+ }
35
+
36
+ export function array(arr: any[], number?: number): any[] {
37
+ return rndHelpers.randomArray(arr, number)
38
+ }
39
+
40
+ export function item(arr: any[]): any {
41
+ return rndHelpers.randomItem(arr)
42
+ }
43
+
44
+ export function shuffle(arr: any[]): any {
45
+ rndHelpers.shuffleArray(arr)
46
+ }
29
47
  }
@@ -16,7 +16,8 @@ export class rndFraction extends randomCore {
16
16
  this._defaultConfig = {
17
17
  negative: true,
18
18
  reduced: true,
19
- zero: true
19
+ zero: true,
20
+ natural: false
20
21
  }
21
22
 
22
23
  this._config = this.mergeConfig(userConfig, this._defaultConfig)
@@ -30,7 +31,11 @@ export class rndFraction extends randomCore {
30
31
  }else {
31
32
  Q.numerator = Random.number(this._config.zero ? 0 : 1, 10)
32
33
  }
33
- Q.denominator = Random.number(1, 10)
34
+ if(this._config.natural){
35
+ Q.denominator = 1
36
+ }else {
37
+ Q.denominator = Random.number(1, 10)
38
+ }
34
39
 
35
40
  return this._config.reduced?Q.reduce():Q
36
41
  }
@@ -30,7 +30,8 @@ import {Monom} from "../algebra/monom";
30
30
  // Generate the coefficient
31
31
  M.coefficient = Random.fraction({
32
32
  zero: this._config.zero,
33
- reduced: true
33
+ reduced: true,
34
+ natural: !this._config.fraction
34
35
  })
35
36
 
36
37
  // Calculate the degree of the monom
@@ -1,7 +1,8 @@
1
1
  export type randomCoefficientConfig = {
2
2
  negative?: boolean,
3
3
  reduced?: boolean,
4
- zero?:boolean
4
+ zero?:boolean,
5
+ natural?:boolean
5
6
  }
6
7
 
7
8
  export type randomMonomConfig = {