MCPcopy Create free account
hub / github.com/creatale/node-dv / divide

Method divide

deps/opencv/modules/core/src/matop.cpp:468–505  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

466
467
468void MatOp::divide(const MatExpr& e1, const MatExpr& e2, MatExpr& res, double scale) const
469{
470 if( this == e2.op )
471 {
472 if( isReciprocal(e1) && isReciprocal(e2) )
473 MatOp_Bin::makeExpr(res, '/', e2.a, e1.a, e1.alpha/e2.alpha);
474 else
475 {
476 Mat m1, m2;
477 char op = '/';
478
479 if( isScaled(e1) )
480 {
481 m1 = e1.a;
482 scale *= e1.alpha;
483 }
484 else
485 e1.op->assign(e1, m1);
486
487 if( isScaled(e2) )
488 {
489 m2 = e2.a;
490 scale /= e2.alpha;
491 }
492 else if( isReciprocal(e2) )
493 {
494 m2 = e2.a;
495 scale /= e2.alpha;
496 op = '*';
497 }
498 else
499 e2.op->assign(e2, m2);
500 MatOp_Bin::makeExpr(res, op, m1, m2, scale);
501 }
502 }
503 else
504 e2.op->divide(e1, e2, res, scale);
505}
506
507
508void MatOp::divide(double s, const MatExpr& expr, MatExpr& res) const

Callers 1

operator /Function · 0.45

Calls 4

isReciprocalFunction · 0.85
isScaledFunction · 0.85
MatClass · 0.85
assignMethod · 0.45

Tested by

no test coverage detected