MCPcopy Create free account
hub / github.com/NatLabRockies/OpenStudio / dot

Function dot

src/utilities/units/OSQuantityVector.cpp:475–492  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

473}
474
475Quantity dot(OSQuantityVector lVector, const OSQuantityVector& rVector) {
476 Unit lUnits(lVector.units());
477 Unit rUnits(rVector.units());
478 OptionalTemperatureUnit ltu = lUnits.optionalCast<TemperatureUnit>();
479 OptionalTemperatureUnit rtu = rUnits.optionalCast<TemperatureUnit>();
480 Unit resultUnits;
481 if (ltu && rtu) {
482 resultUnits = ltu.get() * rtu.get();
483 } else {
484 resultUnits = lUnits * rUnits;
485 }
486 ScaleOpReturnType resultScale = lVector.scale() * rVector.scale();
487 lVector *= resultScale.second;
488 DoubleVector lValues(lVector.values());
489 DoubleVector rValues(rVector.values());
490 double resultValue = dot(createVector(lValues), createVector(rValues));
491 return Quantity(resultValue, resultUnits);
492}
493
494bool operator==(const OSQuantityVector& lVector, const OSQuantityVector& rVector) {
495 return (&lVector == &rVector) || ((lVector.units() == rVector.units()) && (lVector.values() == rVector.values()));

Callers 1

TEST_FFunction · 0.50

Calls 6

createVectorFunction · 0.85
QuantityClass · 0.70
unitsMethod · 0.45
getMethod · 0.45
scaleMethod · 0.45
valuesMethod · 0.45

Tested by 1

TEST_FFunction · 0.40