Skip to main content

Crate ironwork_numeric

Crate ironwork_numeric 

Source
Expand description

What IBM Enterprise COBOL does with numeric data, on top of what the machine does (zarch). Where the manuals leave the answer to the generated code, the choice made here is an entry in assumptions::ASSUMPTIONS until an oracle run settles it.

Re-exports§

pub use binary::Native;
pub use options::Arith;
pub use options::Assumed;
pub use options::BinCheck;
pub use options::CicsReturnWarning;
pub use options::Compliance;
pub use options::Currency;
pub use options::Dialect;
pub use options::DispSign;
pub use options::ExtraPlace;
pub use options::FastsrtAdvPrint;
pub use options::Initcheck;
pub use options::IntDate;
pub use options::LeServices;
pub use options::Nsymbol;
pub use options::Numcheck;
pub use options::Numproc;
pub use options::Options;
pub use options::Parmcheck;
pub use options::Pgmname;
pub use options::ProgramScope;
pub use options::Qualify;
pub use options::Quote;
pub use options::SortKeys;
pub use options::Switched;
pub use options::Trunc;
pub use options::TruncCheck;
pub use options::UnresolvedCalls;
pub use options::Vlr;
pub use options::VsamOpenFs;
pub use options::ZonCheck;

Modules§

assumptions
binary
float
Moves between fixed-point decimal and COMP-1/COMP-2, and floating-point intermediates. Each conversion here is an assumption: see crate::assumptions::FLOAT_FROM_DECIMAL, crate::assumptions::FLOAT_TO_DECIMAL and crate::assumptions::FLOAT_NARROWING_ROUNDS.
governs
What an assumption of the register governs, and what a run holds of it: the statement kinds and data usages of each program it entered, with the options in force for it. An assumption governs a run when every trigger of one of its conjunctions is among one program’s facts, so the ids a run names are those its outcome could have rested on, at program granularity: an over-approximation.
options
precision
Fixed-point intermediate results: how many integer and decimal places IBM carries for each operation, and exact arithmetic that drops exactly the digits it drops. See crate::assumptions::INTERMEDIATE_TABLE.
sign
Signs of packed and zoned items under NUMPROC. Arithmetic results take the preferred sign under either setting; the settings differ in whether a sign is repaired on the way through a MOVE and whether a comparison is algebraic. See crate::assumptions::PFD_MOVES_BYTES and crate::assumptions::PFD_COMPARES_LOGICALLY.
zoned
Zoned decimal into packed, as the generated code does it. PACK takes at most 16 bytes in each operand, so an item of more than 16 digits is packed in parts; see crate::assumptions::LONG_ZONED_BY_PACKS.