#### 23.3.3.6 Arithmetic In Guile

The `(gdb)` module provides several functions for performing arithmetic on `<gdb:value>` objects. The arithmetic is performed as if it were done by the target, and therefore has target semantics which are not necessarily those of Scheme. For example operations work with a fixed precision, not the arbitrary precision of Scheme.

Wherever a function takes an integer or pointer as an operand, GDB will convert appropriate Scheme values to perform the operation.

Scheme Procedure: value-add a b

Scheme Procedure: value-sub a b

Scheme Procedure: value-mul a b

Scheme Procedure: value-div a b

Scheme Procedure: value-rem a b

Scheme Procedure: value-mod a b

Scheme Procedure: value-pow a b

Scheme Procedure: value-not a

Scheme Procedure: value-neg a

Scheme Procedure: value-pos a

Scheme Procedure: value-abs a

Scheme Procedure: value-lsh a b

Scheme Procedure: value-rsh a b

Scheme Procedure: value-min a b

Scheme Procedure: value-max a b

Scheme Procedure: value-lognot a

Scheme Procedure: value-logand a b

Scheme Procedure: value-logior a b

Scheme Procedure: value-logxor a b

Scheme Procedure: value=? a b

Scheme Procedure: value<? a b

Scheme Procedure: value<=? a b

Scheme Procedure: value>? a b

Scheme Procedure: value>=? a b

Scheme does not provide a `not-equal` function, and thus Guile support in GDB does not either.