@fbltd/math 1.0.25 → 1.0.26

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.
@@ -72,4 +72,32 @@ export class Matrix2d {
72
72
  static isEqual(m1, m2) {
73
73
  return m1.every((element, index) => element === m2[index]);
74
74
  }
75
+ static determinant(m) {
76
+ return m[0] * m[3] - m[1] * m[2];
77
+ }
78
+ static multiplyByNumber(m, value) {
79
+ return m.map((c) => c * value);
80
+ }
81
+ static invert(m) {
82
+ const d = Matrix2d.determinant(m);
83
+ if (!d)
84
+ return [0, 0, 0, 0, 0, 0];
85
+ return Matrix2d.multiplyByNumber(m.map((c, i) => Matrix2d.adjoints[i](m)), 1 / d);
86
+ }
87
+ static adjoints = [
88
+ (m) => Matrix2d.minors[0](m),
89
+ (m) => -Matrix2d.minors[1](m),
90
+ (m) => -Matrix2d.minors[2](m),
91
+ (m) => Matrix2d.minors[3](m),
92
+ (m) => Matrix2d.minors[4](m),
93
+ (m) => -Matrix2d.minors[5](m)
94
+ ];
95
+ static minors = [
96
+ (m) => m[3],
97
+ (m) => m[1],
98
+ (m) => m[2],
99
+ (m) => m[0],
100
+ (m) => m[2] * m[5] - m[4] * m[3],
101
+ (m) => m[0] * m[5] - m[4] * m[1]
102
+ ];
75
103
  }
@@ -96,4 +96,64 @@ export class Matrix3d {
96
96
  static isEqual(m1, m2) {
97
97
  return m1.every((element, index) => element === m2[index]);
98
98
  }
99
+ static determinant(m) {
100
+ return m[0] * m[4] * m[8] +
101
+ m[3] * m[7] * m[2] +
102
+ m[6] * m[1] * m[5] -
103
+ m[6] * m[4] * m[2] -
104
+ m[3] * m[1] * m[8] -
105
+ m[0] * m[7] * m[5];
106
+ }
107
+ static multiplyByNumber(m, value) {
108
+ return m.map(c => c * value);
109
+ }
110
+ static invert(m) {
111
+ const d = Matrix3d.determinant(m);
112
+ if (!d)
113
+ return [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0];
114
+ return Matrix3d.multiplyByNumber(m.map((c, i) => Matrix3d.adjoints[i](m)), 1 / d);
115
+ }
116
+ static adjoints = [
117
+ (m) => Matrix3d.minors[0](m),
118
+ (m) => -Matrix3d.minors[1](m),
119
+ (m) => Matrix3d.minors[2](m),
120
+ (m) => -Matrix3d.minors[3](m),
121
+ (m) => Matrix3d.minors[4](m),
122
+ (m) => -Matrix3d.minors[5](m),
123
+ (m) => Matrix3d.minors[6](m),
124
+ (m) => -Matrix3d.minors[7](m),
125
+ (m) => Matrix3d.minors[8](m),
126
+ (m) => -Matrix3d.minors[9](m),
127
+ (m) => Matrix3d.minors[10](m),
128
+ (m) => -Matrix3d.minors[11](m),
129
+ ];
130
+ static minors = [
131
+ (m) => m[4] * m[8] - m[7] * m[5],
132
+ (m) => m[1] * m[8] - m[7] * m[2],
133
+ (m) => m[1] * m[5] - m[4] * m[2],
134
+ (m) => m[3] * m[8] - m[6] * m[5],
135
+ (m) => m[0] * m[8] - m[6] * m[2],
136
+ (m) => m[0] * m[5] - m[3] * m[2],
137
+ (m) => m[3] * m[7] - m[6] * m[4],
138
+ (m) => m[0] * m[7] - m[1] * m[6],
139
+ (m) => m[0] * m[4] - m[1] * m[3],
140
+ (m) => m[3] * m[7] * m[11] +
141
+ m[6] * m[10] * m[5] +
142
+ m[9] * m[4] * m[8] -
143
+ m[9] * m[7] * m[5] -
144
+ m[6] * m[4] * m[11] -
145
+ m[3] * m[10] * m[8],
146
+ (m) => m[0] * m[7] * m[11] +
147
+ m[6] * m[10] * m[2] +
148
+ m[9] * m[1] * m[8] -
149
+ m[0] * m[10] * m[8] -
150
+ m[9] * m[7] * m[2] -
151
+ m[6] * m[1] * m[11],
152
+ (m) => m[0] * m[4] * m[11] +
153
+ m[3] * m[10] * m[2] +
154
+ m[9] * m[1] * m[5] -
155
+ m[9] * m[4] * m[2] -
156
+ m[3] * m[1] * m[11] -
157
+ m[0] * m[10] * m[5]
158
+ ];
99
159
  }
@@ -20,5 +20,10 @@ export declare class Matrix2d {
20
20
  static skew(m: IMatrix2d, x: number, y?: number, units?: AngleUnits): IMatrix2d;
21
21
  static isApproximatelyEqual(m1: IMatrix2d, m2: IMatrix2d): boolean;
22
22
  static isEqual(m1: IMatrix2d, m2: IMatrix2d): boolean;
23
+ static determinant(m: IMatrix2d): number;
24
+ static multiplyByNumber(m: IMatrix2d, value: number): IMatrix2d;
25
+ static invert(m: IMatrix2d): IMatrix2d;
26
+ private static adjoints;
27
+ private static minors;
23
28
  }
24
29
  //# sourceMappingURL=matrix2d.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"matrix2d.d.ts","sourceRoot":"","sources":["../../../../src/matrices/matrix2d.ts"],"names":[],"mappings":"AAAA,OAAO,EAAS,UAAU,EAAiB,KAAK,OAAO,EAAE,MAAM,aAAa,CAAC;AAC7E,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAE1D,MAAM,MAAM,SAAS,GAAG,iBAAiB,CAAC,CAAC,EAAE,MAAM,CAAC,CAAA;AAEpD,eAAO,MAAM,gBAAgB,EAAE,SAA0D,CAAC;AAE1F,wBAAgB,iBAAiB,IAAI,SAAS,CAE7C;AA2BD,qBAAa,QAAQ;IAWjB,MAAM,CAAC,QAAQ,CAAC,MAAM,EAAE,SAAS,EAAE,GAAG,QAAQ,EAAE,SAAS,EAAE;IAe3D,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,OAAO,GAAG,OAAO;IAOxD,MAAM,CAAC,aAAa,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,GAAE,MAAU,GAAG,SAAS;IAIzD,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,GAAE,MAAU,GAAG,SAAS;IAI/D,MAAM,CAAC,cAAc,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,aAAiB,GAAG,SAAS;IAOvE,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,aAAiB,GAAG,SAAS;IAI7E,MAAM,CAAC,iBAAiB,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,GAAE,MAAU,GAAG,SAAS;IAI7D,MAAM,CAAC,SAAS,CAAC,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,GAAE,MAAU,GAAG,SAAS;IAInE,MAAM,CAAC,UAAU,CAAC,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,MAAM,GAAG,SAAS;IAIrD,MAAM,CAAC,UAAU,CAAC,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,MAAM,GAAG,SAAS;IAIrD,MAAM,CAAC,YAAY,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,KAAK,aAAiB,GAAG,SAAS;IAQ5E,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,MAAM,EAAE,KAAK,aAAiB,GAAG,SAAS;IAIxE,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,MAAM,EAAE,KAAK,aAAiB,GAAG,SAAS;IAIxE,MAAM,CAAC,IAAI,CAAC,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,SAAI,EAAE,KAAK,aAAiB,GAAG,SAAS;IAI9E,MAAM,CAAC,oBAAoB,CAAC,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE,SAAS;IAIxD,MAAM,CAAC,OAAO,CAAC,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE,SAAS;CAG9C"}
1
+ {"version":3,"file":"matrix2d.d.ts","sourceRoot":"","sources":["../../../../src/matrices/matrix2d.ts"],"names":[],"mappings":"AAAA,OAAO,EAAS,UAAU,EAAiB,KAAK,OAAO,EAAE,MAAM,aAAa,CAAC;AAC7E,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAE1D,MAAM,MAAM,SAAS,GAAG,iBAAiB,CAAC,CAAC,EAAE,MAAM,CAAC,CAAA;AAEpD,eAAO,MAAM,gBAAgB,EAAE,SAA0D,CAAC;AAE1F,wBAAgB,iBAAiB,IAAI,SAAS,CAE7C;AAED,qBAAa,QAAQ;IAEjB,MAAM,CAAC,QAAQ,CAAC,MAAM,EAAE,SAAS,EAAE,GAAG,QAAQ,EAAE,SAAS,EAAE;IAe3D,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,OAAO,GAAG,OAAO;IAOxD,MAAM,CAAC,aAAa,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,GAAE,MAAU,GAAG,SAAS;IAIzD,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,GAAE,MAAU,GAAG,SAAS;IAI/D,MAAM,CAAC,cAAc,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,aAAiB,GAAG,SAAS;IAOvE,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,aAAiB,GAAG,SAAS;IAI7E,MAAM,CAAC,iBAAiB,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,GAAE,MAAU,GAAG,SAAS;IAI7D,MAAM,CAAC,SAAS,CAAC,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,GAAE,MAAU,GAAG,SAAS;IAInE,MAAM,CAAC,UAAU,CAAC,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,MAAM,GAAG,SAAS;IAIrD,MAAM,CAAC,UAAU,CAAC,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,MAAM,GAAG,SAAS;IAIrD,MAAM,CAAC,YAAY,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,KAAK,aAAiB,GAAG,SAAS;IAQ5E,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,MAAM,EAAE,KAAK,aAAiB,GAAG,SAAS;IAIxE,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,MAAM,EAAE,KAAK,aAAiB,GAAG,SAAS;IAIxE,MAAM,CAAC,IAAI,CAAC,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,SAAI,EAAE,KAAK,aAAiB,GAAG,SAAS;IAI9E,MAAM,CAAC,oBAAoB,CAAC,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE,SAAS;IAIxD,MAAM,CAAC,OAAO,CAAC,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE,SAAS;IAI3C,MAAM,CAAC,WAAW,CAAC,CAAC,EAAE,SAAS;IAI/B,MAAM,CAAC,gBAAgB,CAAC,CAAC,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,GAAG,SAAS;IAI/D,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,SAAS,GAAG,SAAS;IAQtC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAOtB;IAED,OAAO,CAAC,MAAM,CAAC,MAAM,CAOpB;CACJ"}
@@ -23,5 +23,10 @@ export declare class Matrix3d {
23
23
  static rotateZ(m: IMatrix3d, angle: number, units?: AngleUnits): [number, number, number, number, number, number, number, number, number, number, number, number];
24
24
  static isApproximatelyEqual(m1: IMatrix3d, m2: IMatrix3d, withPrecision?: number): boolean;
25
25
  static isEqual(m1: IMatrix3d, m2: IMatrix3d): boolean;
26
+ static determinant(m: IMatrix3d): number;
27
+ static multiplyByNumber(m: IMatrix3d, value: number): IMatrix3d;
28
+ static invert(m: IMatrix3d): IMatrix3d;
29
+ private static adjoints;
30
+ private static minors;
26
31
  }
27
32
  //# sourceMappingURL=matrix3d.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"matrix3d.d.ts","sourceRoot":"","sources":["../../../../src/matrices/matrix3d.ts"],"names":[],"mappings":"AAAA,OAAO,EAAS,UAAU,EAAiB,KAAK,OAAO,EAAE,MAAM,gBAAgB,CAAC;AAChF,OAAO,EAAgB,KAAK,iBAAiB,EAAE,KAAK,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAE7F,MAAM,MAAM,SAAS,GAAG,iBAAiB,CAAC,EAAE,EAAE,MAAM,CAAC,CAAA;AAErD,eAAO,MAAM,gBAAgB,EAAE,SAAgD,CAAC;AAGhF,qBAAa,QAAQ;IACjB,MAAM,CAAC,QAAQ,CAAC,MAAM,EAAE,SAAS,EAAE,GAAG,IAAI,EAAE,cAAc,CAAC,SAAS,CAAC;IAyBrE,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,OAAO,GAAG,OAAO;IAQxD,MAAM,CAAC,iBAAiB,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,SAAI,EAAE,CAAC,SAAI,GAAG,SAAS;IAM5D,MAAM,CAAC,aAAa,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,SAAI,EAAE,CAAC,SAAI,GAAG,SAAS;IAMxD,MAAM,CAAC,eAAe,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,GAAE,UAA2B,GAAG,SAAS;IAOnF,MAAM,CAAC,eAAe,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,GAAE,UAA2B,GAAG,SAAS;IAOnF,MAAM,CAAC,eAAe,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,GAAE,UAA2B,GAAG,SAAS;IAOnF,MAAM,CAAC,SAAS,CAAC,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,SAAI,EAAE,CAAC,SAAI,GAAG,SAAS;IAIlE,MAAM,CAAC,UAAU,CAAC,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,MAAM,GAAG,SAAS;IAIrD,MAAM,CAAC,UAAU,CAAC,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,MAAM,GAAG,SAAS;IAIrD,MAAM,CAAC,UAAU,CAAC,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,MAAM,GAAG,SAAS;IAIrD,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,EAAE,MAAM,GAAG,SAAS;IAOxE,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,MAAM,GAAG,SAAS;IAIjD,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,MAAM,GAAG,SAAS;IAIjD,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,MAAM,GAAG,SAAS;IAIjD,MAAM,CAAC,OAAO,CAAC,CAAC,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,GAAE,UAA2B;IAO9E,MAAM,CAAC,OAAO,CAAC,CAAC,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,GAAE,UAA2B;IAO9E,MAAM,CAAC,OAAO,CAAC,CAAC,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,GAAE,UAA2B;IAQ9E,MAAM,CAAC,oBAAoB,CAAC,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE,SAAS,EAAE,aAAa,CAAC,EAAE,MAAM;IAIhF,MAAM,CAAC,OAAO,CAAC,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE,SAAS;CAG9C"}
1
+ {"version":3,"file":"matrix3d.d.ts","sourceRoot":"","sources":["../../../../src/matrices/matrix3d.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fbltd/math",
3
- "version": "1.0.25",
3
+ "version": "1.0.26",
4
4
  "description": "Math and geometry utilities",
5
5
  "sideEffects": false,
6
6
  "main": "dist/bin/index.js",