File tree Expand file tree Collapse file tree 1 file changed +5
-9
lines changed
Expand file tree Collapse file tree 1 file changed +5
-9
lines changed Original file line number Diff line number Diff line change @@ -127,21 +127,17 @@ template< unsigned Integer, unsigned Fraction >
127127constexpr UFixed<Integer, Fraction> roundFixed (const UFixed<Integer, Fraction> & value)
128128{
129129 using OutputType = UFixed<Integer, Fraction>;
130- return (value.getInternal () & OutputType::MidpointMask) != 0 ? ceilFixed (value) : floorFixed (value);
130+ return (( value.getFraction () >= OutputType ( 0.5 ). getFraction ()) != 0 ) ? ceilFixed (value) : floorFixed (value);
131131}
132132
133133template < unsigned Integer, unsigned Fraction >
134134constexpr SFixed<Integer, Fraction> roundFixed (const SFixed<Integer, Fraction> & value)
135135{
136136 using OutputType = SFixed<Integer, Fraction>;
137- return
138- (
139- ((value.getInternal () & OutputType::MidpointMask) != 0 ) &&
140- (!signbitFixed (value) ||
141- ((value.getInternal () & OutputType::LesserMidpointMask) != 0 ))
142- )
143- ? ceilFixed (value)
144- : floorFixed (value);
137+ return
138+ signbitFixed (value)
139+ ? ((value.getFraction () <= OutputType (0.5 ).getFraction ()) != 0 ) ? floorFixed (value) : ceilFixed (value)
140+ : ((value.getFraction () >= OutputType (0.5 ).getFraction ()) != 0 ) ? ceilFixed (value) : floorFixed (value);
145141}
146142
147143template < unsigned Integer, unsigned Fraction >
You can’t perform that action at this time.
0 commit comments