1530 |
Data |
Data |
1531 |
escript::operator+(const Data& left, const Data& right) |
escript::operator+(const Data& left, const Data& right) |
1532 |
{ |
{ |
1533 |
Data result; |
return C_TensorBinaryOperation(left, right, plus<double>()); |
|
// |
|
|
// perform a deep copy |
|
|
if (left.getDataPointRank()<right.getDataPointRank()) { |
|
|
result.copy(right); |
|
|
result+=left; |
|
|
} else { |
|
|
result.copy(left); |
|
|
result+=right; |
|
|
} |
|
|
return result; |
|
1534 |
} |
} |
1535 |
|
|
1536 |
// |
// |
1538 |
Data |
Data |
1539 |
escript::operator-(const Data& left, const Data& right) |
escript::operator-(const Data& left, const Data& right) |
1540 |
{ |
{ |
1541 |
Data result; |
return C_TensorBinaryOperation(left, right, minus<double>()); |
|
// |
|
|
// perform a deep copy |
|
|
if (left.getDataPointRank()<right.getDataPointRank()) { |
|
|
result=right.neg(); |
|
|
result+=left; |
|
|
} else { |
|
|
result.copy(left); |
|
|
result-=right; |
|
|
} |
|
|
return result; |
|
1542 |
} |
} |
1543 |
|
|
1544 |
// |
// |
1546 |
Data |
Data |
1547 |
escript::operator*(const Data& left, const Data& right) |
escript::operator*(const Data& left, const Data& right) |
1548 |
{ |
{ |
1549 |
Data result; |
return C_TensorBinaryOperation(left, right, multiplies<double>()); |
|
// |
|
|
// perform a deep copy |
|
|
if (left.getDataPointRank()<right.getDataPointRank()) { |
|
|
result.copy(right); |
|
|
result*=left; |
|
|
} else { |
|
|
result.copy(left); |
|
|
result*=right; |
|
|
} |
|
|
return result; |
|
1550 |
} |
} |
1551 |
|
|
1552 |
// |
// |
1554 |
Data |
Data |
1555 |
escript::operator/(const Data& left, const Data& right) |
escript::operator/(const Data& left, const Data& right) |
1556 |
{ |
{ |
1557 |
Data result; |
return C_TensorBinaryOperation(left, right, divides<double>()); |
|
// |
|
|
// perform a deep copy |
|
|
if (left.getDataPointRank()<right.getDataPointRank()) { |
|
|
result=right.oneOver(); |
|
|
result*=left; |
|
|
} else { |
|
|
result.copy(left); |
|
|
result/=right; |
|
|
} |
|
|
return result; |
|
1558 |
} |
} |
1559 |
|
|
1560 |
// |
// |