#pragma once #include typedef u8 MergingStrategy; constexpr MergingStrategy MergingStrategy_MIN = 0; constexpr MergingStrategy MergingStrategy_MAX = 1; struct LUTReference { usize data_start; u32 axis1, axis2; }; struct TimingArcPointer { LUTReference delay[2][2], slew[2][2]; }; struct ConstraintArcPointer { LUTReference setup[2][2], hold[2][2]; }; struct LibPinInfo { f32 caps[2]; f32 delay_threshold[2], slew_threshold[2][2]; }; typedef u8 ParasiticElementType; constexpr ParasiticElementType ParasiticElementType_R = 0; constexpr ParasiticElementType ParasiticElementType_C = 1; struct ParasiticElement { ParasiticElementType typ; u32 a, b; f32 value; }; struct STAGraphArc { usize prev; usize arcid; }; struct STAConstraintArc { usize related, cur; usize arcid; };