Project Euler Solutions
Classes
Bcd_types

The types defined for BCD_ints. More...

Classes

struct  BCD_int
 A little-endian, arbitrary-precision, binary-coded-decimal number. More...
 
enum  c::include::bcd::comp_t { c::include::bcd::EQUAL_TO, c::include::bcd::GREATER_THAN, c::include::bcd::LESS_THAN, c::include::bcd::NO_COMP }
 An enum that we return for BCD comparisons. More...
 
enum  c::include::bcd::BCD_error {
  c::include::bcd::NON_ERR, c::include::bcd::ORIG_NAN, c::include::bcd::IS_FREED, c::include::bcd::ADD_NAN,
  c::include::bcd::SUB_NAN, c::include::bcd::MUL_NAN, c::include::bcd::DIV_NAN, c::include::bcd::POW_NAN,
  c::include::bcd::FACT_NAN, c::include::bcd::SHIFT_NAN, c::include::bcd::POW_NEG, c::include::bcd::FACT_NEG,
  c::include::bcd::DIV_ZERO, c::include::bcd::NO_MEM, c::include::bcd::NOT_SUPP, c::include::bcd::RESERVED
}
 An enum that we use to track errors in BCD integers. More...
 
typedef uint8_t c::include::bcd::packed_BCD_pair
 An alias for uint8_t that shows it is intended to store packed BCD data. More...
 

Detailed Description

The types defined for BCD_ints.

types

Typedef Documentation

An alias for uint8_t that shows it is intended to store packed BCD data.

Enumeration Type Documentation

An enum that we use to track errors in BCD integers.

Enumerator
NON_ERR 

there wasn't an error

ORIG_NAN 

this is the original NaN

IS_FREED 

this BCD_int has been freed

ADD_NAN 

you tried to add NaN

SUB_NAN 

you tried to subtract NaN

MUL_NAN 

you tried to multiply NaN

DIV_NAN 

you tried to divide NaN

POW_NAN 

you tried to use NaN as an exponent or base

FACT_NAN 

you tried to get the factorial of NaN

SHIFT_NAN 

you tried to shift NaN

POW_NEG 

you tried to use a negative exponent

FACT_NEG 

you tried to get a negative factorial

DIV_ZERO 

you tried to divide by zero

NO_MEM 

you are out of memory to make new ints

NOT_SUPP 

you tried to do a yet-unimplemented feature

RESERVED 

reserved

An enum that we return for BCD comparisons.

Enumerator
EQUAL_TO 

x == y

GREATER_THAN 

x > y

LESS_THAN 

x < y

NO_COMP 

x.nan || y.nan