Elektra: README

Elektra 0.8.14

- Main Page
- Related Pages
- Modules
- Namespaces
- Data Structures
- Files

README

- infos = Information about the mathcheck plugin is in keys below
- infos/author = Thomas Waser thoma.nosp@m.s.wa.nosp@m.ser@l.nosp@m.ibel.nosp@m.ektra.nosp@m..org
- infos/licence = BSD
- infos/needs =
- infos/provides = check
- infos/placements = presetstorage
- infos/description =

Compares a key value to a mathematical expression using polish prefix notation defined in the `check/math` metakey. Operations are `+ - / *` . Operants are keys with names relative to the parent key. How the values are compared is specified at the beginning of the metakey using the conditions `<, <=, ==, !=, =>, >, :=` `:=` is used to set key values. All values are interpreted as `double` floating point values.

## Examples

`check/math = "== + testval1 + testval2 testval3"` compares the keyvalue to the sum of testval1-3 and yields an error if the values are not equal. `check/math = "\<= - testval1 * testval2 testval3"` tests if the keyvalue is less than or equal to testval1 - (testval2 * testval3) and yields an error if not.

Full example:

        kdb mount mathcheck.dump /example/mathcheck dump mathcheck
        kdb set user/example/mathcheck/a 3.1
        kdb set user/example/mathcheck/b 4.5
        kdb set user/example/mathcheck/k 7.6
        kdb setmeta user/example/mathcheck/k check/math "== + a b"
        kdb set user/example/mathcheck/k 7.7   # fails

To calculate values on-demand you can use:

        kdb setmeta user/example/mathcheck/k check/math ":= + a b"
        kdb get user/example/mathcheck/k       # 12.5
        kdb set user/example/mathcheck/a 5.5
        kdb get user/example/mathcheck/k       # 10

It also works with constants:

        kdb setmeta user/example/mathcheck/k check/math ":= + a '5'"
        kdb get user/example/mathcheck/k       # 10.5
        kdb set user/example/mathcheck/a 8.0
        kdb get user/example/mathcheck/k       # 13