### `ComparableQuantity` Arithmetic Operations Source: https://context7.com/unitsofmeasurement/indriya/llms.txt Demonstrates how to perform addition, subtraction, multiplication, and division on quantities. It also shows how to compare quantities and perform cross-type arithmetic, with automatic unit conversion and type safety. ```APIDOC ## `ComparableQuantity` Arithmetic Performs typed arithmetic on quantities, returning `ComparableQuantity` and handling automatic unit conversions. ### Methods - **add(ComparableQuantity quantity)**: Adds another quantity to this quantity, performing unit conversion if necessary. - **multiply(double scalar)**: Multiplies the quantity by a scalar value. - **divide(double scalar)**: Divides the quantity by a scalar value. - **divide(ComparableQuantity quantity, Class quantityType)**: Divides this quantity by another quantity, returning a new quantity of the specified type. - **isLessThan(ComparableQuantity quantity)**: Checks if this quantity is less than another quantity. - **isGreaterThanOrEqualTo(ComparableQuantity quantity)**: Checks if this quantity is greater than or equal to another quantity. ### Example ```java import tech.units.indriya.quantity.Quantities; import tech.units.indriya.unit.Units; import tech.units.indriya.ComparableQuantity; import static javax.measure.MetricPrefix.KILO; import javax.measure.quantity.*; ComparableQuantity a = Quantities.getQuantity(3.0, Units.METRE); ComparableQuantity b = Quantities.getQuantity(200.0, KILO(Units.METRE)); // Addition auto-converts b to metres before summing ComparableQuantity sum = a.add(b); System.out.println(sum); // "200003.0 m" // Scalar multiplication / division ComparableQuantity doubled = a.multiply(2); // 6.0 m ComparableQuantity halved = a.divide(2); // 1.5 m // Comparison (auto-converts units) System.out.println(a.isLessThan(b)); // true System.out.println(a.isGreaterThanOrEqualTo(a)); // true // Cross-type: Length / Time → Speed ComparableQuantity