|
LSSTApplications
16.0-10-g0ee56ad+5,16.0-11-ga33d1f2+5,16.0-12-g3ef5c14+3,16.0-12-g71e5ef5+18,16.0-12-gbdf3636+3,16.0-13-g118c103+3,16.0-13-g8f68b0a+3,16.0-15-gbf5c1cb+4,16.0-16-gfd17674+3,16.0-17-g7c01f5c+3,16.0-18-g0a50484+1,16.0-20-ga20f992+8,16.0-21-g0e05fd4+6,16.0-21-g15e2d33+4,16.0-22-g62d8060+4,16.0-22-g847a80f+4,16.0-25-gf00d9b8+1,16.0-28-g3990c221+4,16.0-3-gf928089+3,16.0-32-g88a4f23+5,16.0-34-gd7987ad+3,16.0-37-gc7333cb+2,16.0-4-g10fc685+2,16.0-4-g18f3627+26,16.0-4-g5f3a788+26,16.0-5-gaf5c3d7+4,16.0-5-gcc1f4bb+1,16.0-6-g3b92700+4,16.0-6-g4412fcd+3,16.0-6-g7235603+4,16.0-69-g2562ce1b+2,16.0-8-g14ebd58+4,16.0-8-g2df868b+1,16.0-8-g4cec79c+6,16.0-8-gadf6c7a+1,16.0-8-gfc7ad86,16.0-82-g59ec2a54a+1,16.0-9-g5400cdc+2,16.0-9-ge6233d7+5,master-g2880f2d8cf+3,v17.0.rc1
LSSTDataManagementBasePackage
|
The Point and Extent classes support many mathematical operators, but the set of available operators (and their expected behavior) isn't quite as obvious as one might think.
The table below lists all supported operators, with notes below on special cases. For the rationale behind these operations, see RFC-41.
| LHS | RHS | Operator | Result | Notes |
|---|---|---|---|---|
PointD | PointD | +, += | Not supported | (1) |
PointD | PointI | +, += | Not supported | (1) |
PointD | PointD | - | ExtentD | |
PointD | PointD | -= | Not supported | (2) |
PointD | PointI | - | ExtentD | |
PointD | PointI | -= | Not supported | (2) |
PointD | ExtentD | +, +=, -, -= | PointD | |
PointD | ExtentI | +, +=, -, -= | PointD | |
PointI | PointD | +, += | Not supported | (1) |
PointI | PointI | +, += | Not supported | (1) |
PointI | ExtentD | + | PointD | |
PointI | ExtentD | += | Not supported | (2) |
PointI | ExtentI | +, += | PointI | |
PointI | PointD | - | ExtentD | |
PointI | PointD | -= | Not supported | (2) |
PointI | PointI | - | ExtentI | |
PointI | PointI | -= | Not supported | (2) |
PointI | ExtentD | - | PointD | |
PointI | ExtentD | -= | Not supported | (2) |
PointI | ExtentI | -, -= | PointI | |
ExtentD | PointD | + | PointD | |
ExtentD | PointD | += | Not supported | (2) |
ExtentD | PointD | -, -= | Not supported | (1) |
ExtentD | PointI | + | PointD | |
ExtentD | PointI | += | Not supported | (2) |
ExtentD | PointI | -, -= | Not supported | (1) |
ExtentD | ExtentD | +, +=, -, -= | ExtentD | |
ExtentD | ExtentI | +, +=, -, -= | ExtentD | |
ExtentI | PointD | + | PointD | |
ExtentI | PointD | += | Not supported | (2) |
ExtentI | PointD | -, -= | Not supported | (1) |
ExtentI | PointI | + | PointI | |
ExtentI | PointI | += | Not supported | (2) |
ExtentI | PointI | -, -= | Not supported | (1) |
ExtentI | ExtentD | +, - | ExtentD | |
ExtentI | ExtentD | +=, -= | Not supported | (2) |
ExtentI | ExtentI | +, -, +=, -= | ExtentI | |
ExtentD | double | *, *=, /, /= | ExtentD | |
ExtentD | double | //, //= | Not supported | (5) |
ExtentD | int | *, *=, /, /= | ExtentD | (3) |
ExtentD | int | //, //= | Not supported | (5) |
ExtentI | double | * | ExtentD | |
ExtentI | double | *= | Not supported | (2) |
ExtentI | double | / | ExtentD | (4) |
ExtentI | double | /= | Not supported | (2), (4) |
ExtentI | double | //, //= | Not supported | (5) |
ExtentI | int | *, *= | ExtentI | |
ExtentI | int | / | ExtentD | (4) |
ExtentI | int | /= | Not supported (Python), ExtentI (C++) | (2), (4) |
ExtentI | int | //, //= | ExtentI | (6) |
double | ExtentD | * | ExtentD | |
double | ExtentI | * | ExtentD | |
int | ExtentD | * | ExtentD | (3) |
int | ExtentI | * | ExtentI |
double will also accept int (but may yield different answers for extremely large integers that cannot be represented exactly as doubles).from __future__ import division. If this is not enabled, the behavior of the "/" operator will be that of "//", and likewise for "/=" and "//=", for all operations with ExtentI on the LHS.// operator applies only to integer types.a//b is equivalent to floor(a/b), while C++ specifies that it should be equivalent to int(a/b). Note that floor rounds negative numbers down and int rounds them up.
1.8.13