package

Description

Description

A library for exact computation with quadratic irrationals with support for exact conversion from and to (potentially periodic) simple continued fractions.

A quadratic irrational is a number that can be expressed in the form

``(a + b √c) / d``

where `a`, `b` and `d` are integers and `c` is a square-free natural number.

Some examples of such numbers are

• `7/2`,

• `√2`,

• `(1 + √5)/2` (the golden ratio),

• solutions to quadratic equations with rational constants – the quadratic formula has a familiar shape.

A simple continued fraction is a number expressed in the form

``a + 1/(b + 1/(c + 1/(d + 1/(e + …))))``

or alternatively written as

``[a; b, c, d, e, …]``

where `a` is an integer and `b`, `c`, `d`, `e`, … are positive integers.

Every finite SCF represents a rational number and every infinite, periodic SCF represents a quadratic irrational.

``````3.5      = [3; 2]
(1+√5)/2 = [1; 1, 1, 1, …]
√2       = [1; 2, 2, 2, …]``````

# `quadratic-irrational`

A library for exact computation with quadratic irrationals with support for exact conversion from and to (potentially periodic) simple continued fractions.

A quadratic irrational is a number that can be expressed in the form

``````(a + b √c) / d
``````

where `a`, `b` and `d` are integers and `c` is a square-free natural number.

Some examples of such numbers are

• `7/2`,

• `√2`,

• `(1 + √5)/2` (the golden ratio),

• solutions to quadratic equations with rational constants – the quadratic formula has a familiar shape.

A simple continued fraction is a number in the form

``````a + 1/(b + 1/(c + 1/(d + 1/(e + …))))
``````

or alternatively written as

``````[a; b, c, d, e, …]
``````

where `a` is an integer and `b`, `c`, `d`, `e`, … are positive integers.

Every finite SCF represents a rational number and every infinite, periodic SCF represents a quadratic irrational.

``````3.5      = [3; 2]
(1+√5)/2 = [1; 1, 1, 1, …]
√2       = [1; 2, 2, 2, …]
``````

`0.1.1`

### Platforms71 (71)

Darwin
FreeBSD 13
Genode
GHCJS
Linux
MMIXware
NetBSD
none
OpenBSD
Redox
Solaris
WASI
Windows
Show all
• `aarch64-darwin`
• `aarch64-genode`
• `aarch64-linux`
• `aarch64-netbsd`
• `aarch64-none`
• `aarch64_be-none`
• `arm-none`
• `armv5tel-linux`
• `armv6l-linux`
• `armv6l-netbsd`
• `armv6l-none`
• `armv7a-darwin`
• `armv7a-linux`
• `armv7a-netbsd`
• `armv7l-linux`
• `armv7l-netbsd`
• `avr-none`
• `i686-cygwin`
• `i686-darwin`
• `i686-freebsd13`
• `i686-genode`
• `i686-linux`
• `i686-netbsd`
• `i686-none`
• `i686-openbsd`
• `i686-windows`
• `javascript-ghcjs`
• `loongarch64-linux`
• `m68k-linux`
• `m68k-netbsd`
• `m68k-none`
• `microblaze-linux`
• `microblaze-none`
• `microblazeel-linux`
• `microblazeel-none`
• `mips64el-linux`
• `mipsel-linux`
• `mipsel-netbsd`
• `mmix-mmixware`
• `msp430-none`
• `or1k-none`
• `powerpc-netbsd`
• `powerpc-none`
• `powerpc64-linux`
• `powerpc64le-linux`
• `powerpcle-none`
• `riscv32-linux`
• `riscv32-netbsd`
• `riscv32-none`
• `riscv64-linux`
• `riscv64-netbsd`
• `riscv64-none`
• `rx-none`
• `s390-linux`
• `s390-none`
• `s390x-linux`
• `s390x-none`
• `vc4-none`
• `wasm32-wasi`
• `wasm64-wasi`
• `x86_64-cygwin`
• `x86_64-darwin`
• `x86_64-freebsd13`
• `x86_64-genode`
• `x86_64-linux`
• `x86_64-netbsd`
• `x86_64-none`
• `x86_64-openbsd`
• `x86_64-redox`
• `x86_64-solaris`
• `x86_64-windows`
mnos-build-web-prod-20230506T105712Z-2f940cd