I have this function which concatenates two matrices:
out->_11 = MAT_MUL(b->_11, a->_11) + MAT_MUL(b->_21, a->_12) + MAT_MUL(b->_31, a->_13) + MAT_MUL(b->_41, a->_14);
out->_12 = MAT_MUL(b->_12, a->_11) + MAT_MUL(b->_22, a->_12) + MAT_MUL(b->_32, a->_13) + MAT_MUL(b->_42, a->_14);
out->_13 = MAT_MUL(b->_13, a->_11) + MAT_MUL(b->_23, a->_12) + MAT_MUL(b->_33, a->_13) + MAT_MUL(b->_43, a->_14);
out->_14 = MAT_MUL(b->_14, a->_11) + MAT_MUL(b->_24, a->_12) + MAT_MUL(b->_34, a->_13) + MAT_MUL(b->_44, a->_14);
out->_21 = MAT_MUL(b->_11, a->_21) + MAT_MUL(b->_21, a->_22) + MAT_MUL(b->_31, a->_23) + MAT_MUL(b->_41, a->_24);
out->_22 = MAT_MUL(b->_12, a->_21) + MAT_MUL(b->_22, a->_22) + MAT_MUL(b->_32, a->_23) + MAT_MUL(b->_42, a->_24);
out->_23 = MAT_MUL(b->_13, a->_21) + MAT_MUL(b->_23, a->_22) + MAT_MUL(b->_33, a->_23) + MAT_MUL(b->_43, a->_24);
out->_24 = MAT_MUL(b->_14, a->_21) + MAT_MUL(b->_24, a->_22) + MAT_MUL(b->_34, a->_23) + MAT_MUL(b->_44, a->_24);
out->_31 = MAT_MUL(b->_11, a->_31) + MAT_MUL(b->_21, a->_32) + MAT_MUL(b->_31, a->_33) + MAT_MUL(b->_41, a->_34);
out->_32 = MAT_MUL(b->_12, a->_31) + MAT_MUL(b->_22, a->_32) + MAT_MUL(b->_32, a->_33) + MAT_MUL(b->_42, a->_34);
out->_33 = MAT_MUL(b->_13, a->_31) + MAT_MUL(b->_23, a->_32) + MAT_MUL(b->_33, a->_33) + MAT_MUL(b->_43, a->_34);
out->_34 = MAT_MUL(b->_14, a->_31) + MAT_MUL(b->_24, a->_32) + MAT_MUL(b->_34, a->_33) + MAT_MUL(b->_44, a->_34);
out->_41 = MAT_MUL(b->_11, a->_41) + MAT_MUL(b->_21, a->_42) + MAT_MUL(b->_31, a->_43) + MAT_MUL(b->_41, a->_44);
out->_42 = MAT_MUL(b->_12, a->_41) + MAT_MUL(b->_22, a->_42) + MAT_MUL(b->_32, a->_43) + MAT_MUL(b->_42, a->_44);
out->_43 = MAT_MUL(b->_13, a->_41) + MAT_MUL(b->_23, a->_42) + MAT_MUL(b->_33, a->_43) + MAT_MUL(b->_43, a->_44);
out->_44 = MAT_MUL(b->_14, a->_41) + MAT_MUL(b->_24, a->_42) + MAT_MUL(b->_34, a->_43) + MAT_MUL(b->_44, a->_44);
MAT_MUL looks like this:
#define MAT_MUL(o1,o2) ((GLfixed)((long)(o1)*(long)(o2))>>16)
The odd thing is that it doesn't work with fixed point values but with float values (MAT_MUL(o1,o2) (o1)*(o2) in this case). I traced the error down to this bit of code.
Any ideas? Thanks
Related
I am trying to solve a non-linear equation system with maxima.
I use wxmaxima (17.05.0). The non-linear system is rather long and I am deeply sorry for posting the hole problem, but otherwise I do not think my problem will be clear.
I would like to solve these equations for eleven unkowns (K2 to K11) When I run this after some time the error message "No more room for LISP objects" occurs.
I have no glue how I can give it more cpu or to avoid the error.
I need the symbolic solutions for further calculations.
debugmode(true);
gcd : subres;
eq1:mBA*(K10*RABm10 + K11*RABm11 + K12*RABm12 + K7*RABm7 + K8*RABm8 + K9*RABm9)*
(M1 + K10*M10*RAm10 + K11*M11*RAm11 + K12*M12*RAm12 + K2*M2*RAm2 +
K3*M3*RAm3 + K4*M4*RAm4 + K5*M5*RAm5 + K6*M6*RAm6 + K7*M7*RAm7 +
K8*M8*RAm8 + K9*M9*RAm9)*
(1 + K2*RBm2 + K3*RBm3 + K4*RBm4 + K5*RBm5 + K6*RBm6) +
mAB*(K10*RABm10 + K11*RABm11 + K12*RABm12 + K7*RABm7 + K8*RABm8 +
K9*RABm9)*(1 + K2*RAm2 + K3*RAm3 + K4*RAm4 + K5*RAm5 + K6*RAm6)*
(M1 + K10*M10*RBm10 + K11*M11*RBm11 + K12*M12*RBm12 + K2*M2*RBm2 +
K3*M3*RBm3 + K4*M4*RBm4 + K5*M5*RBm5 + K6*M6*RBm6 + K7*M7*RBm7 +
K8*M8*RBm8 + K9*M9*RBm9) =
mBA*(K10*RABm10 + K11*RABm11 + K12*RABm12 + K7*RABm7 + K8*RABm8 +
K9*RABm9)*(M1 + K10*M10*RAm10 + K11*M11*RAm11 + K12*M12*RAm12 +
K2*M2*RAm2 + K3*M3*RAm3 + K4*M4*RAm4 + K5*M5*RAm5 + K6*M6*RAm6 +
K7*M7*RAm7 + K8*M8*RAm8 + K9*M9*RAm9)*
(K10*RBm10 + K11*RBm11 + K12*RBm12 + K7*RBm7 + K8*RBm8 + K9*RBm9) +
mAB*(K10*RABm10 + K11*RABm11 + K12*RABm12 + K7*RABm7 + K8*RABm8 +
K9*RABm9)*(K10*RAm10 + K11*RAm11 + K12*RAm12 + K7*RAm7 + K8*RAm8 +
K9*RAm9)*(M1 + K10*M10*RBm10 + K11*M11*RBm11 + K12*M12*RBm12 +
K2*M2*RBm2 + K3*M3*RBm3 + K4*M4*RBm4 + K5*M5*RBm5 + K6*M6*RBm6 +
K7*M7*RBm7 + K8*M8*RBm8 + K9*M9*RBm9)$
eq2:mCA*(K10*RACm10 + K11*RACm11 + K12*RACm12 + K7*RACm7 + K8*RACm8 + K9*RACm9)*
(M1 + K10*M10*RAm10 + K11*M11*RAm11 + K12*M12*RAm12 + K2*M2*RAm2 +
K3*M3*RAm3 + K4*M4*RAm4 + K5*M5*RAm5 + K6*M6*RAm6 + K7*M7*RAm7 +
K8*M8*RAm8 + K9*M9*RAm9)*
(1 + K2*RCm2 + K3*RCm3 + K4*RCm4 + K5*RCm5 + K6*RCm6) +
mAC*(K10*RACm10 + K11*RACm11 + K12*RACm12 + K7*RACm7 + K8*RACm8 +
K9*RACm9)*(1 + K2*RAm2 + K3*RAm3 + K4*RAm4 + K5*RAm5 + K6*RAm6)*
(M1 + K10*M10*RCm10 + K11*M11*RCm11 + K12*M12*RCm12 + K2*M2*RCm2 +
K3*M3*RCm3 + K4*M4*RCm4 + K5*M5*RCm5 + K6*M6*RCm6 + K7*M7*RCm7 +
K8*M8*RCm8 + K9*M9*RCm9) =
mCA*(K10*RACm10 + K11*RACm11 + K12*RACm12 + K7*RACm7 + K8*RACm8 +
K9*RACm9)*(M1 + K10*M10*RAm10 + K11*M11*RAm11 + K12*M12*RAm12 +
K2*M2*RAm2 + K3*M3*RAm3 + K4*M4*RAm4 + K5*M5*RAm5 + K6*M6*RAm6 +
K7*M7*RAm7 + K8*M8*RAm8 + K9*M9*RAm9)*
(K10*RCm10 + K11*RCm11 + K12*RCm12 + K7*RCm7 + K8*RCm8 + K9*RCm9) +
mAC*(K10*RACm10 + K11*RACm11 + K12*RACm12 + K7*RACm7 + K8*RACm8 +
K9*RACm9)*(K10*RAm10 + K11*RAm11 + K12*RAm12 + K7*RAm7 + K8*RAm8 +
K9*RAm9)*(M1 + K10*M10*RCm10 + K11*M11*RCm11 + K12*M12*RCm12 +
K2*M2*RCm2 + K3*M3*RCm3 + K4*M4*RCm4 + K5*M5*RCm5 + K6*M6*RCm6 +
K7*M7*RCm7 + K8*M8*RCm8 + K9*M9*RCm9)$
eq3:mDA*(K10*RADm10 + K11*RADm11 + K12*RADm12 + K7*RADm7 + K8*RADm8 + K9*RADm9)*
(M1 + K10*M10*RAm10 + K11*M11*RAm11 + K12*M12*RAm12 + K2*M2*RAm2 +
K3*M3*RAm3 + K4*M4*RAm4 + K5*M5*RAm5 + K6*M6*RAm6 + K7*M7*RAm7 +
K8*M8*RAm8 + K9*M9*RAm9)*
(1 + K2*RDm2 + K3*RDm3 + K4*RDm4 + K5*RDm5 + K6*RDm6) +
mAD*(K10*RADm10 + K11*RADm11 + K12*RADm12 + K7*RADm7 + K8*RADm8 +
K9*RADm9)*(1 + K2*RAm2 + K3*RAm3 + K4*RAm4 + K5*RAm5 + K6*RAm6)*
(M1 + K10*M10*RDm10 + K11*M11*RDm11 + K12*M12*RDm12 + K2*M2*RDm2 +
K3*M3*RDm3 + K4*M4*RDm4 + K5*M5*RDm5 + K6*M6*RDm6 + K7*M7*RDm7 +
K8*M8*RDm8 + K9*M9*RDm9) =
mDA*(K10*RADm10 + K11*RADm11 + K12*RADm12 + K7*RADm7 + K8*RADm8 +
K9*RADm9)*(M1 + K10*M10*RAm10 + K11*M11*RAm11 + K12*M12*RAm12 +
K2*M2*RAm2 + K3*M3*RAm3 + K4*M4*RAm4 + K5*M5*RAm5 + K6*M6*RAm6 +
K7*M7*RAm7 + K8*M8*RAm8 + K9*M9*RAm9)*
(K10*RDm10 + K11*RDm11 + K12*RDm12 + K7*RDm7 + K8*RDm8 + K9*RDm9) +
mAD*(K10*RADm10 + K11*RADm11 + K12*RADm12 + K7*RADm7 + K8*RADm8 +
K9*RADm9)*(K10*RAm10 + K11*RAm11 + K12*RAm12 + K7*RAm7 + K8*RAm8 +
K9*RAm9)*(M1 + K10*M10*RDm10 + K11*M11*RDm11 + K12*M12*RDm12 +
K2*M2*RDm2 + K3*M3*RDm3 + K4*M4*RDm4 + K5*M5*RDm5 + K6*M6*RDm6 +
K7*M7*RDm7 + K8*M8*RDm8 + K9*M9*RDm9)$
eq4:mEA*(K10*RAEm10 + K11*RAEm11 + K12*RAEm12 + K7*RAEm7 + K8*RAEm8 + K9*RAEm9)*
(M1 + K10*M10*RAm10 + K11*M11*RAm11 + K12*M12*RAm12 + K2*M2*RAm2 +
K3*M3*RAm3 + K4*M4*RAm4 + K5*M5*RAm5 + K6*M6*RAm6 + K7*M7*RAm7 +
K8*M8*RAm8 + K9*M9*RAm9)*
(1 + K2*REm2 + K3*REm3 + K4*REm4 + K5*REm5 + K6*REm6) +
mAE*(K10*RAEm10 + K11*RAEm11 + K12*RAEm12 + K7*RAEm7 + K8*RAEm8 +
K9*RAEm9)*(1 + K2*RAm2 + K3*RAm3 + K4*RAm4 + K5*RAm5 + K6*RAm6)*
(M1 + K10*M10*REm10 + K11*M11*REm11 + K12*M12*REm12 + K2*M2*REm2 +
K3*M3*REm3 + K4*M4*REm4 + K5*M5*REm5 + K6*M6*REm6 + K7*M7*REm7 +
K8*M8*REm8 + K9*M9*REm9) =
mEA*(K10*RAEm10 + K11*RAEm11 + K12*RAEm12 + K7*RAEm7 + K8*RAEm8 +
K9*RAEm9)*(M1 + K10*M10*RAm10 + K11*M11*RAm11 + K12*M12*RAm12 +
K2*M2*RAm2 + K3*M3*RAm3 + K4*M4*RAm4 + K5*M5*RAm5 + K6*M6*RAm6 +
K7*M7*RAm7 + K8*M8*RAm8 + K9*M9*RAm9)*
(K10*REm10 + K11*REm11 + K12*REm12 + K7*REm7 + K8*REm8 + K9*REm9) +
mAE*(K10*RAEm10 + K11*RAEm11 + K12*RAEm12 + K7*RAEm7 + K8*RAEm8 +
K9*RAEm9)*(K10*RAm10 + K11*RAm11 + K12*RAm12 + K7*RAm7 + K8*RAm8 +
K9*RAm9)*(M1 + K10*M10*REm10 + K11*M11*REm11 + K12*M12*REm12 +
K2*M2*REm2 + K3*M3*REm3 + K4*M4*REm4 + K5*M5*REm5 + K6*M6*REm6 +
K7*M7*REm7 + K8*M8*REm8 + K9*M9*REm9)$
eq5:mFA*(K10*RAFm10 + K11*RAFm11 + K12*RAFm12 + K7*RAFm7 + K8*RAFm8 + K9*RAFm9)*
(M1 + K10*M10*RAm10 + K11*M11*RAm11 + K12*M12*RAm12 + K2*M2*RAm2 +
K3*M3*RAm3 + K4*M4*RAm4 + K5*M5*RAm5 + K6*M6*RAm6 + K7*M7*RAm7 +
K8*M8*RAm8 + K9*M9*RAm9)*
(1 + K2*RFm2 + K3*RFm3 + K4*RFm4 + K5*RFm5 + K6*RFm6) +
mAF*(K10*RAFm10 + K11*RAFm11 + K12*RAFm12 + K7*RAFm7 + K8*RAFm8 +
K9*RAFm9)*(1 + K2*RAm2 + K3*RAm3 + K4*RAm4 + K5*RAm5 + K6*RAm6)*
(M1 + K10*M10*RFm10 + K11*M11*RFm11 + K12*M12*RFm12 + K2*M2*RFm2 +
K3*M3*RFm3 + K4*M4*RFm4 + K5*M5*RFm5 + K6*M6*RFm6 + K7*M7*RFm7 +
K8*M8*RFm8 + K9*M9*RFm9) =
mFA*(K10*RAFm10 + K11*RAFm11 + K12*RAFm12 + K7*RAFm7 + K8*RAFm8 +
K9*RAFm9)*(M1 + K10*M10*RAm10 + K11*M11*RAm11 + K12*M12*RAm12 +
K2*M2*RAm2 + K3*M3*RAm3 + K4*M4*RAm4 + K5*M5*RAm5 + K6*M6*RAm6 +
K7*M7*RAm7 + K8*M8*RAm8 + K9*M9*RAm9)*
(K10*RFm10 + K11*RFm11 + K12*RFm12 + K7*RFm7 + K8*RFm8 + K9*RFm9) +
mAF*(K10*RAFm10 + K11*RAFm11 + K12*RAFm12 + K7*RAFm7 + K8*RAFm8 +
K9*RAFm9)*(K10*RAm10 + K11*RAm11 + K12*RAm12 + K7*RAm7 + K8*RAm8 +
K9*RAm9)*(M1 + K10*M10*RFm10 + K11*M11*RFm11 + K12*M12*RFm12 +
K2*M2*RFm2 + K3*M3*RFm3 + K4*M4*RFm4 + K5*M5*RFm5 + K6*M6*RFm6 +
K7*M7*RFm7 + K8*M8*RFm8 + K9*M9*RFm9)$
eq6:mGA*(K10*RAGm10 + K11*RAGm11 + K12*RAGm12 + K7*RAGm7 + K8*RAGm8 + K9*RAGm9)*
(M1 + K10*M10*RAm10 + K11*M11*RAm11 + K12*M12*RAm12 + K2*M2*RAm2 +
K3*M3*RAm3 + K4*M4*RAm4 + K5*M5*RAm5 + K6*M6*RAm6 + K7*M7*RAm7 +
K8*M8*RAm8 + K9*M9*RAm9)*
(1 + K2*RGm2 + K3*RGm3 + K4*RGm4 + K5*RGm5 + K6*RGm6) +
mAG*(K10*RAGm10 + K11*RAGm11 + K12*RAGm12 + K7*RAGm7 + K8*RAGm8 +
K9*RAGm9)*(1 + K2*RAm2 + K3*RAm3 + K4*RAm4 + K5*RAm5 + K6*RAm6)*
(M1 + K10*M10*RGm10 + K11*M11*RGm11 + K12*M12*RGm12 + K2*M2*RGm2 +
K3*M3*RGm3 + K4*M4*RGm4 + K5*M5*RGm5 + K6*M6*RGm6 + K7*M7*RGm7 +
K8*M8*RGm8 + K9*M9*RGm9) =
mGA*(K10*RAGm10 + K11*RAGm11 + K12*RAGm12 + K7*RAGm7 + K8*RAGm8 +
K9*RAGm9)*(M1 + K10*M10*RAm10 + K11*M11*RAm11 + K12*M12*RAm12 +
K2*M2*RAm2 + K3*M3*RAm3 + K4*M4*RAm4 + K5*M5*RAm5 + K6*M6*RAm6 +
K7*M7*RAm7 + K8*M8*RAm8 + K9*M9*RAm9)*
(K10*RGm10 + K11*RGm11 + K12*RGm12 + K7*RGm7 + K8*RGm8 + K9*RGm9) +
mAG*(K10*RAGm10 + K11*RAGm11 + K12*RAGm12 + K7*RAGm7 + K8*RAGm8 +
K9*RAGm9)*(K10*RAm10 + K11*RAm11 + K12*RAm12 + K7*RAm7 + K8*RAm8 +
K9*RAm9)*(M1 + K10*M10*RGm10 + K11*M11*RGm11 + K12*M12*RGm12 +
K2*M2*RGm2 + K3*M3*RGm3 + K4*M4*RGm4 + K5*M5*RGm5 + K6*M6*RGm6 +
K7*M7*RGm7 + K8*M8*RGm8 + K9*M9*RGm9)$
eq7:mHA*(K10*RAHm10 + K11*RAHm11 + K12*RAHm12 + K7*RAHm7 + K8*RAHm8 + K9*RAHm9)*
(M1 + K10*M10*RAm10 + K11*M11*RAm11 + K12*M12*RAm12 + K2*M2*RAm2 +
K3*M3*RAm3 + K4*M4*RAm4 + K5*M5*RAm5 + K6*M6*RAm6 + K7*M7*RAm7 +
K8*M8*RAm8 + K9*M9*RAm9)*
(1 + K2*RHm2 + K3*RHm3 + K4*RHm4 + K5*RHm5 + K6*RHm6) +
mAH*(K10*RAHm10 + K11*RAHm11 + K12*RAHm12 + K7*RAHm7 + K8*RAHm8 +
K9*RAHm9)*(1 + K2*RAm2 + K3*RAm3 + K4*RAm4 + K5*RAm5 + K6*RAm6)*
(M1 + K10*M10*RHm10 + K11*M11*RHm11 + K12*M12*RHm12 + K2*M2*RHm2 +
K3*M3*RHm3 + K4*M4*RHm4 + K5*M5*RHm5 + K6*M6*RHm6 + K7*M7*RHm7 +
K8*M8*RHm8 + K9*M9*RHm9) =
mHA*(K10*RAHm10 + K11*RAHm11 + K12*RAHm12 + K7*RAHm7 + K8*RAHm8 +
K9*RAHm9)*(M1 + K10*M10*RAm10 + K11*M11*RAm11 + K12*M12*RAm12 +
K2*M2*RAm2 + K3*M3*RAm3 + K4*M4*RAm4 + K5*M5*RAm5 + K6*M6*RAm6 +
K7*M7*RAm7 + K8*M8*RAm8 + K9*M9*RAm9)*
(K10*RHm10 + K11*RHm11 + K12*RHm12 + K7*RHm7 + K8*RHm8 + K9*RHm9) +
mAH*(K10*RAHm10 + K11*RAHm11 + K12*RAHm12 + K7*RAHm7 + K8*RAHm8 +
K9*RAHm9)*(K10*RAm10 + K11*RAm11 + K12*RAm12 + K7*RAm7 + K8*RAm8 +
K9*RAm9)*(M1 + K10*M10*RHm10 + K11*M11*RHm11 + K12*M12*RHm12 +
K2*M2*RHm2 + K3*M3*RHm3 + K4*M4*RHm4 + K5*M5*RHm5 + K6*M6*RHm6 +
K7*M7*RHm7 + K8*M8*RHm8 + K9*M9*RHm9)$
eq8:mIA*(K10*RAIm10 + K11*RAIm11 + K12*RAIm12 + K7*RAIm7 + K8*RAIm8 + K9*RAIm9)*
(M1 + K10*M10*RAm10 + K11*M11*RAm11 + K12*M12*RAm12 + K2*M2*RAm2 +
K3*M3*RAm3 + K4*M4*RAm4 + K5*M5*RAm5 + K6*M6*RAm6 + K7*M7*RAm7 +
K8*M8*RAm8 + K9*M9*RAm9)*
(1 + K2*RIm2 + K3*RIm3 + K4*RIm4 + K5*RIm5 + K6*RIm6) +
mAI*(K10*RAIm10 + K11*RAIm11 + K12*RAIm12 + K7*RAIm7 + K8*RAIm8 +
K9*RAIm9)*(1 + K2*RAm2 + K3*RAm3 + K4*RAm4 + K5*RAm5 + K6*RAm6)*
(M1 + K10*M10*RIm10 + K11*M11*RIm11 + K12*M12*RIm12 + K2*M2*RIm2 +
K3*M3*RIm3 + K4*M4*RIm4 + K5*M5*RIm5 + K6*M6*RIm6 + K7*M7*RIm7 +
K8*M8*RIm8 + K9*M9*RIm9) =
mIA*(K10*RAIm10 + K11*RAIm11 + K12*RAIm12 + K7*RAIm7 + K8*RAIm8 +
K9*RAIm9)*(M1 + K10*M10*RAm10 + K11*M11*RAm11 + K12*M12*RAm12 +
K2*M2*RAm2 + K3*M3*RAm3 + K4*M4*RAm4 + K5*M5*RAm5 + K6*M6*RAm6 +
K7*M7*RAm7 + K8*M8*RAm8 + K9*M9*RAm9)*
(K10*RIm10 + K11*RIm11 + K12*RIm12 + K7*RIm7 + K8*RIm8 + K9*RIm9) +
mAI*(K10*RAIm10 + K11*RAIm11 + K12*RAIm12 + K7*RAIm7 + K8*RAIm8 +
K9*RAIm9)*(K10*RAm10 + K11*RAm11 + K12*RAm12 + K7*RAm7 + K8*RAm8 +
K9*RAm9)*(M1 + K10*M10*RIm10 + K11*M11*RIm11 + K12*M12*RIm12 +
K2*M2*RIm2 + K3*M3*RIm3 + K4*M4*RIm4 + K5*M5*RIm5 + K6*M6*RIm6 +
K7*M7*RIm7 + K8*M8*RIm8 + K9*M9*RIm9)$
eq9:mJA*(K10*RAJm10 + K11*RAJm11 + K12*RAJm12 + K7*RAJm7 + K8*RAJm8 + K9*RAJm9)*
(M1 + K10*M10*RAm10 + K11*M11*RAm11 + K12*M12*RAm12 + K2*M2*RAm2 +
K3*M3*RAm3 + K4*M4*RAm4 + K5*M5*RAm5 + K6*M6*RAm6 + K7*M7*RAm7 +
K8*M8*RAm8 + K9*M9*RAm9)*
(1 + K2*RJm2 + K3*RJm3 + K4*RJm4 + K5*RJm5 + K6*RJm6) +
mAJ*(K10*RAJm10 + K11*RAJm11 + K12*RAJm12 + K7*RAJm7 + K8*RAJm8 +
K9*RAJm9)*(1 + K2*RAm2 + K3*RAm3 + K4*RAm4 + K5*RAm5 + K6*RAm6)*
(M1 + K10*M10*RJm10 + K11*M11*RJm11 + K12*M12*RJm12 + K2*M2*RJm2 +
K3*M3*RJm3 + K4*M4*RJm4 + K5*M5*RJm5 + K6*M6*RJm6 + K7*M7*RJm7 +
K8*M8*RJm8 + K9*M9*RJm9) =
mJA*(K10*RAJm10 + K11*RAJm11 + K12*RAJm12 + K7*RAJm7 + K8*RAJm8 +
K9*RAJm9)*(M1 + K10*M10*RAm10 + K11*M11*RAm11 + K12*M12*RAm12 +
K2*M2*RAm2 + K3*M3*RAm3 + K4*M4*RAm4 + K5*M5*RAm5 + K6*M6*RAm6 +
K7*M7*RAm7 + K8*M8*RAm8 + K9*M9*RAm9)*
(K10*RJm10 + K11*RJm11 + K12*RJm12 + K7*RJm7 + K8*RJm8 + K9*RJm9) +
mAJ*(K10*RAJm10 + K11*RAJm11 + K12*RAJm12 + K7*RAJm7 + K8*RAJm8 +
K9*RAJm9)*(K10*RAm10 + K11*RAm11 + K12*RAm12 + K7*RAm7 + K8*RAm8 +
K9*RAm9)*(M1 + K10*M10*RJm10 + K11*M11*RJm11 + K12*M12*RJm12 +
K2*M2*RJm2 + K3*M3*RJm3 + K4*M4*RJm4 + K5*M5*RJm5 + K6*M6*RJm6 +
K7*M7*RJm7 + K8*M8*RJm8 + K9*M9*RJm9)$
eq10:mKA*(K10*RAKm10 + K11*RAKm11 + K12*RAKm12 + K7*RAKm7 + K8*RAKm8 + K9*RAKm9)*
(M1 + K10*M10*RAm10 + K11*M11*RAm11 + K12*M12*RAm12 + K2*M2*RAm2 +
K3*M3*RAm3 + K4*M4*RAm4 + K5*M5*RAm5 + K6*M6*RAm6 + K7*M7*RAm7 +
K8*M8*RAm8 + K9*M9*RAm9)*
(1 + K2*RKm2 + K3*RKm3 + K4*RKm4 + K5*RKm5 + K6*RKm6) +
mAK*(K10*RAKm10 + K11*RAKm11 + K12*RAKm12 + K7*RAKm7 + K8*RAKm8 +
K9*RAKm9)*(1 + K2*RAm2 + K3*RAm3 + K4*RAm4 + K5*RAm5 + K6*RAm6)*
(M1 + K10*M10*RKm10 + K11*M11*RKm11 + K12*M12*RKm12 + K2*M2*RKm2 +
K3*M3*RKm3 + K4*M4*RKm4 + K5*M5*RKm5 + K6*M6*RKm6 + K7*M7*RKm7 +
K8*M8*RKm8 + K9*M9*RKm9) =
mKA*(K10*RAKm10 + K11*RAKm11 + K12*RAKm12 + K7*RAKm7 + K8*RAKm8 +
K9*RAKm9)*(M1 + K10*M10*RAm10 + K11*M11*RAm11 + K12*M12*RAm12 +
K2*M2*RAm2 + K3*M3*RAm3 + K4*M4*RAm4 + K5*M5*RAm5 + K6*M6*RAm6 +
K7*M7*RAm7 + K8*M8*RAm8 + K9*M9*RAm9)*
(K10*RKm10 + K11*RKm11 + K12*RKm12 + K7*RKm7 + K8*RKm8 + K9*RKm9) +
mAK*(K10*RAKm10 + K11*RAKm11 + K12*RAKm12 + K7*RAKm7 + K8*RAKm8 +
K9*RAKm9)*(K10*RAm10 + K11*RAm11 + K12*RAm12 + K7*RAm7 + K8*RAm8 +
K9*RAm9)*(M1 + K10*M10*RKm10 + K11*M11*RKm11 + K12*M12*RKm12 +
K2*M2*RKm2 + K3*M3*RKm3 + K4*M4*RKm4 + K5*M5*RKm5 + K6*M6*RKm6 +
K7*M7*RKm7 + K8*M8*RKm8 + K9*M9*RKm9)$
eq11:mLA*(K10*RALm10 + K11*RALm11 + K12*RALm12 + K7*RALm7 + K8*RALm8 + K9*RALm9)*
(M1 + K10*M10*RAm10 + K11*M11*RAm11 + K12*M12*RAm12 + K2*M2*RAm2 +
K3*M3*RAm3 + K4*M4*RAm4 + K5*M5*RAm5 + K6*M6*RAm6 + K7*M7*RAm7 +
K8*M8*RAm8 + K9*M9*RAm9)*
(1 + K2*RLm2 + K3*RLm3 + K4*RLm4 + K5*RLm5 + K6*RLm6) +
mAL*(K10*RALm10 + K11*RALm11 + K12*RALm12 + K7*RALm7 + K8*RALm8 +
K9*RALm9)*(1 + K2*RAm2 + K3*RAm3 + K4*RAm4 + K5*RAm5 + K6*RAm6)*
(M1 + K10*M10*RLm10 + K11*M11*RLm11 + K12*M12*RLm12 + K2*M2*RLm2 +
K3*M3*RLm3 + K4*M4*RLm4 + K5*M5*RLm5 + K6*M6*RLm6 + K7*M7*RLm7 +
K8*M8*RLm8 + K9*M9*RLm9) =
mLA*(K10*RALm10 + K11*RALm11 + K12*RALm12 + K7*RALm7 + K8*RALm8 +
K9*RALm9)*(M1 + K10*M10*RAm10 + K11*M11*RAm11 + K12*M12*RAm12 +
K2*M2*RAm2 + K3*M3*RAm3 + K4*M4*RAm4 + K5*M5*RAm5 + K6*M6*RAm6 +
K7*M7*RAm7 + K8*M8*RAm8 + K9*M9*RAm9)*
(K10*RLm10 + K11*RLm11 + K12*RLm12 + K7*RLm7 + K8*RLm8 + K9*RLm9) +
mAL*(K10*RALm10 + K11*RALm11 + K12*RALm12 + K7*RALm7 + K8*RALm8 +
K9*RALm9)*(K10*RAm10 + K11*RAm11 + K12*RAm12 + K7*RAm7 + K8*RAm8 +
K9*RAm9)*(M1 + K10*M10*RLm10 + K11*M11*RLm11 + K12*M12*RLm12 +
K2*M2*RLm2 + K3*M3*RLm3 + K4*M4*RLm4 + K5*M5*RLm5 + K6*M6*RLm6 +
K7*M7*RLm7 + K8*M8*RLm8 + K9*M9*RLm9)$
sol:solve([eq1,eq2,eq3,eq4,eq5,eq6,eq7,eq8,eq9,eq10,eq11],[K2,K3,K4,K5,K6,K7,K8,K9,K10,K11])$
Here are the missing infos about my system.
wxMaxima version: 17.05.0
Maxima version: 5.40.0
Maxima build date: 2017-06-01 18:54:32
Host type: x86_64-w64-mingw32
System type:
gcc -mno-cygwin -g -O2 -W -Wswitch -Wcomment -Wpointer-arith -Wimplicit -Wreturn-type -Wmissing-declarations -Wno-sign-compare -Wno-format-nonliteral -O2 -fexpensive-optimizations -falign-functions=4 -D_WIN32 -DENABLE_UNICODE -I/usr/local/include -DDYNAMIC_FFI -I. -L/usr/local/lib -lintl /usr/local/lib/libreadline.dll.a -L/usr/local/lib -ltermcap /usr/local/lib/libavcall.a /usr/local/lib/libcallback.a -luser32 -lws2_32 -lole32 -loleaut32 -luuid -liconv -L/usr/local/lib -lsigsegv libgnu_cl.a
SAFETY=0 HEAPCODES STANDARD_HEAPCODES GENERATIONAL_GC SPVW_BLOCKS SPVW_MIXED TRIVIALMAP_MEMORY
libsigsegv 2.8
libiconv 1.13
libreadline 6.0 GNU C 3.4.5 (mingw-vista special r3) PC/386
Lisp implementation type: CLISP
Lisp implementation version: 2.49 (2010-07-07) (built on toshiba [192.168.43.206])
This seems to me like heap exhaustion. Using the :lisp directive from my comment above, you can investigate the current heap size in the underlying Lisp. This is implementation-specific, but assuming you're running on SBCL, the following would retrieve the heap size:
:lisp (cl-user::dynamic-space-size)
Now, Maxima recognizes an environment variable MAXIMA_LISP_OPTIONS, which is just a list of command line parameters passed to Lisp. In SBCL there's a parameter --dynamic-space-size, which specifies the heap size in megabytes. So by running Maxima as follows:
MAXIMA_LISP_OPTIONS="--dynamic-space-size 10000" maxima
you should run the underlying SBCL with 10 GB of heap space, which you can verify as above. This approach would have to be appropriately modified for other Lisp implementations. Let me know if this allows your calculations to run to completion.
I have changed a line in the maxima.bat file.
There you can find some thing like
if exist "%maxima_prefix%/bin/libgcc_s_seh-1.dll" (
if "%lisp_options%"=="" set lisp_options=--dynamic-space-size^ 200
)
I have changed the 200 MB to 8000 MB, this help me to increase the heap size but still I was not able to solve my system of non-linear equations.
I need a check that class elements was ui-state-active.
class="ui-state-default ui-state-active" href="#">15</a>
I am trying to using all methods and don't undestand how to write a code:
.perform(function () {
var arrAttr = [];
var arrCssProp = [];
var arrValue= [];
for (i = 1; i < 8; i++) {
for (j = 1; j < 7; j++) {
browser.useXpath();
browser.getCssProperty('//*[#id="ui-datepicker-div"]/table/tbody/tr[' + i + ']/td[' + j + ']', '.ui-state-default', function (result) {
arrCssProp[j, i] = result.value;
});
browser.getAttribute('//*[#id="ui-datepicker-div"]/table/tbody/tr[' + i + ']/td[' + j + ']', '.ui-state-default', function (result) {
arrAttr[j, i] = result.value;
});
browser.getValue('//*[#id="ui-datepicker-div"]/table/tbody/tr[' + i + ']/td[' + j + ']', '.ui-state-default', function (result) {
arrValue[j, i] = result.value;
});
browser.useCss();
writeLogLine('arrAttr:' + i + "|" + j + ' :' + arrAttr);
console.log('arrAttr:' + i + "|" + j + ' :' + arrAttr);
writeLogLine('arrCssProp:' + i + "|" + j + ' :' + arrCssProp);
console.log('arrCssProp:' + i + "|" + j + ' :' + arrCssProp);
writeLogLine('arrValue:' + i + "|" + j + ' :' + arrValue);
console.log('arrValue:' + i + "|" + j + ' :' + arrValue);
}
}
})
To get the attribute of class, you can write similar code
browser.getAttribute(pageObject.getElement('#ui'), "class", function (result) {
if (result.value.indexOf("ui-state-active")!=-1) {
console.log('class name:' + result.value);
}
else { console.log('class name:' + result.value); }});
You can use any locator strategy. To use CSS strategy based on class name, use .ui-state-default along with tagname.
Hope this helps.
Like in Rohit's example, if you want to use an attribute value, all the commands that rely on it need to be inside the callback. Doing arrCssProp[j, i] = result.value; won't work, since that value will disappear as soon as you exit the callback.
For more info, check out https://github.com/nightwatchjs/nightwatch/wiki/Understanding-the-Command-Queue
We have some code that checks each incoming file against 3 different criteria before processing (Not a weekend, not after 6pm, not a holiday). This being said, I need to figure out how to have it check for a half hour now (bolded part). I have tried adding a + mRelease > 30 as well as AND mRelease > 30 and both have failed. I have been altering this line
Do While (WeekDay(dRelease) = 1) OR (WeekDay(dRelease) = 7) OR (UBound(fHoliday) > -1) OR (tRelease >17)
Here is the code currently in place:
result = ""
dRelease = Now
tRelease = CStr(Hour(Now))
mRelease = CStr(Minute(Now))
aHoliday = Array("01/02/2017","01/16/2017","05/29/2017","07/04/2017","09/04/2017","10/09/2017","11/23/2017","11/24/2017","12/25/2017","12/26/2017")
dNow = CStr(DatePart("m",Date)) + "/" + CStr(DatePart("d",Date)) + "/" + CStr(DatePart("yyyy",Date))
dMonth = "0" + CStr(Month(dRelease))
dDay = "0" + CStr(Day(dRelease))
dYear = CStr(Year(dRelease))
fHoliday = Filter(aHoliday,Right(dMonth,2) + "/" + Right(dDay,2) + "/" + dYear)
'fHoliday = Filter(aHoliday,dNow)
'result = UBound(fHoliday)
'result = Left(dRelease,10)
'result = CStr(DatePart("m",Date)) + "/" + CStr(DatePart("d",Date)) + "/" + CStr(DatePart("yyyy",Date))
'While release date is a weekend, or release date is a holiday
Do While (WeekDay(dRelease) = 1) OR (WeekDay(dRelease) = 7) OR (UBound(fHoliday) > -1) OR (tRelease >17)
'increase release date by 1
dRelease = dRelease + 1
'result = dRelease
'check for holiday
dMonth = "0" + CStr(Month(dRelease))
dDay = "0" + CStr(Day(dRelease))
dYear = CStr(Year(dRelease))
'fHoliday = Filter(aHoliday,Left(dRelease,10))
fHoliday = Filter(aHoliday,Right(dMonth,2) + "/" + Right(dDay,2) + "/" + dYear)
tRelease = 00
Loop
'Format the release date to the Esker deferred date/time standard.
dMonth = "0" + CStr(Month(dRelease))
dDay = "0" + CStr(Day(dRelease))
dYear = CStr(Year(dRelease))
dtCurrent = Right(dMonth,2) + "/" + Right(dDay,2) + "/" + dYear
If dRelease > Now Then
tRelease = "00:" + mRelease
Else
tRelease = CStr(Hour(Now)) + ":" + CStr(Minute(Now))
End If
result = dtCurrent + " " + tRelease
Change this:
Do While (WeekDay(dRelease) = 1) OR (WeekDay(dRelease) = 7) OR (UBound(fHoliday) > -1) OR (tRelease >17)
...
Loop
into this:
If (WeekDay(dRelease) = 1) Or (WeekDay(dRelease) = 7) Or (UBound(fHoliday) > -1) Or (Time > CDate("16:30")) Then
...
End If
Yesterday I have been trying to solve the following problem: calculate the local rotation quaternion for a bone given its global rotation quaternion and the skeleton state.
I figured that the global quaternion equals to the parent bone global multiplied by the bone's local quaternion:
global = globalParent * local
After a couple of simple manipulations, I got the following:
local = (globalParent)-1 * global
I did some tests on that equation and, to my surprise, it sometimes yields the correct answer and sometimes I get the correct answer multiplied by -1. Not the local quaternion's conjugate, but the whole quaternion multiplied by -1.
So I went back to the original equation (global = globalParent * local) and tested it too. The same thing happened, sometimes the right answer and sometimes the right answer multiplied by -1.
I found that really strange and went further to make the matrix product (globalParent * local) and extract the quaternion for the result. In this situation, I always got the right answer.
Finally, my question is pretty simple. Where is the mistake in my thought process when manipulating the quaternions?
The code I used to check the things I said is the following:
{
var p = new THREE.Vector3();
var s = new THREE.Vector3();
var bone = this.get_model_bone(label);
var gm = bone.matrixWorld;
var g = new THREE.Quaternion();
gm.decompose(p, g, s);
console.log(label + " - GLOBAL: (" + g.x + ", " + g.y + ", " + g.z + ", " + g.w + ")");
var m = bone.matrix;
var q = new THREE.Quaternion();
m.decompose(p, q, s);
console.log(label + " - LOCAL: (" + q.x + ", " + q.y + ", " + q.z + ", " + q.w + ")");
if(bone.parent !== null)
{
var gpm = bone.parent.matrixWorld;
var gp = new THREE.Quaternion();
gpm.decompose(p, gp, s);
console.log(label + " - PARENT GLOBAL: (" + gp.x + ", " + gp.y + ", " + gp.z + ", " + gp.w + ")");
var productMatrix = new THREE.Matrix4().multiplyMatrices(gpm, m);
var qprod = new THREE.Quaternion();
productMatrix.decompose(p, qprod, s);
console.log(label + " - MATRIX PROD: (" + qprod.x + ", " + qprod.y + ", " + qprod.z + ", " + qprod.w + ")");
var gpq = new THREE.Quaternion().multiplyQuaternions(gp, q);
console.log(label + " - QUAT PROD: (" + gpq.x + ", " + gpq.y + ", " + gpq.z + ", " + gpq.w + ")");
}
}
In my logs, sometimes "MATRIX PROD" is different than "QUAT PROD". The model I am using can be found at:
https://raw.githubusercontent.com/poli-libras/virtual-jonah2/master/resources/model/human.js
I did some tests on that equation and, to my surprise, it sometimes yields the correct answer and sometimes I get the correct answer multiplied by -1.
Quaternion and quaternion multiplied by -1 represent exact same transformation (rotation).
I used to split my Xcode window to 4 sub windows (not popup). I wonder if there's shortcut key to move cursor from one sub window to another ?
+++++++++++++++++++++++++++++
+ + + +
+ G / + F1 + F2 +
+ r F + + +
+ o i +++++++++++++++++++++++
+ u l + + +
+ p e + F3 + F4 +
+ + + +
+++++++++++++++++++++++++++++