S7JIDQYE2ONMIDNDW5WYD2OFRVYJQF7NDSFJFXL6CXSAXW6MAFXAC double newxx = evalExprReal(cmd).elem.real;cmd += skipUntil(cmd, ',');double newxn = evalExprReal(cmd).elem.real;cmd += skipUntil(cmd, ',');double newyx = evalExprReal(cmd).elem.real;cmd += skipUntil(cmd, ',');double newyn = evalExprReal(cmd).elem.real;
stack_t s = evalExprRealStack(cmd);if (s.rsp - 4 != s.rbp) DISPERR("expected 4 params");double newxx = (s.rsp - 3)->elem.real;double newxn = (s.rsp - 2)->elem.real;double newyx = (s.rsp - 1)->elem.real;double newyn = (s.rsp - 0)->elem.real;
*++m->s.rsp = (isdigit(*++m->c.rip)) ? handleFnArgs(m): (islower(*m->c.rip)) ? m->e.info.reg[*m->c.rip - 'a']: *(real_t *)$panic(ERR_CHAR_NOT_FOUND);
*++m->s.rsp = *++m->c.rip == '0' ? SET_LAMB((char *)m->c.expr): (isdigit(*m->c.rip)) ? handleFnArgs(m): (islower(*m->c.rip)) ? m->e.info.reg[*m->c.rip - 'a']: *(real_t *)$panic(ERR_CHAR_NOT_FOUND);
{ 0.0, "0;hello"}, // comment{ 5.0, "3 4 5 {3 @c $1}! +"}, // @c})#define eval_expr_real_cond(expr) !isnan(eval_expr_real_return_double(expr))test_table(eval_real_cond, eval_expr_real_cond, (bool, char const *),{{ true, "1.5 1.5 ="},{false, "0 1 ="},{ true, "1s1c>"},{false, "1s1c<"},{ true, "10 100 90 ig ="},{false, "@n@n="},
val.cols = (size_t)strtol(expr, (char **)&expr, 10);for (; *expr != ']'; expr += skipUntil(expr, ','))*curelem++ = evalExprComplex(expr).elem.comp;val.rows = (size_t)(curelem - val.matrix) / val.cols;
val.cols = (size_t)evalExprComplex(expr).elem.comp;expr += skipUntil(expr, ';');elem_t stack[buf_size] = {};size_t len = evalExprComplexStack(expr, stack);for (size_t i = 0; i < len; i++) *curelem++ = stack[i + 1].elem.comp;val.rows = len / val.cols;
evalExprComplex("[2 1,2,3,4,][2 5,6,7,8,]+");evalExprComplex("[3 4,1,4,6,5,7,3,6,7,]~");evalExprComplex("[1 4,5,][2 6,7,]*");evalExprComplex("[2 7,6,5,4,] 6 *");evalExprComplex("[2 9,0,5,1,] 4 ^");evalExprComplex("[2 5,4,3,2,][2 4,8,2,1,]/");
evalExprComplex("[2; 1 2 3 4 ][2; 5 6 7 8 ]+");evalExprComplex("[3; 4 1 4 6 5 7 3 6 7 ]~");evalExprComplex("[1; 4 5 ][2; 6 7 ]*");evalExprComplex("[2; 7 6 5 4 ] 6 *");evalExprComplex("[2; 9 0 5 1 ] 4 ^");evalExprComplex("[2; 5 4 3 2 ][2; 4 8 2 1 ]/");
- Example: `[2 5,3m,6i,1s,99,]` create a 2x2 matrix $mat(5,-3;6i,sin(1))$- Example: `[3 1,2,3,4,5,]` creates a 1x3 matrix $mat(1,2,3)$
- Example: `[2; 5 3m 6i 1s 99]` create a 2x2 matrix $mat(5,-3;6i,sin(1))$- Example: `[3; 1 2 3 4 5]` creates a 1x3 matrix $mat(1,2,3)$
+ Matrix addition: `[2 1,2,3,4,][2,4,5,6,7,]+` #math.arrow.r $mat(5,7;9,11)$+ Matrix inverse: `[3 1,1,1m,2m,0,1,0,2,1,]~` #math.arrow.r $mat(-0.5,-0.75,0.25;0.5,0.25,0.25;-1,-0.5,0.5)$
+ Matrix addition: `[2; 1 2 3 4][2; 4 5 6 7]+` #math.arrow.r $mat(5,7;9,11)$+ Matrix inverse: `[3; 1 1 1m 2m 0 1 0 2 1]~` #math.arrow.r $mat(-0.5,-0.75,0.25;0.5,0.25,0.25;-1,-0.5,0.5)$+ To Chuch Boolean: `{ {2 @c $1} {2 @c $2} $1 ? } &c`