def get_approx_dp(S, name, approx_perc, approx_abs, approx_abs_S, max_value, max_value_S): from mcdp_posets.types_universe import express_value_in_isomorphic_space approx_abs_ = express_value_in_isomorphic_space(S1=approx_abs_S, s1=approx_abs, S2=S) max_value_ = express_value_in_isomorphic_space(S1=max_value_S, s1=max_value, S2=S) if approx_perc > 0: # pragma: no cover raise_desc(DPNotImplementedError, 'Approx_perc not implemented') dps = [] if max_value > 0: dp_max = FuncNotMoreThan(S, max_value_) dps.append(dp_max) if approx_abs_ > 0: dps.append(makeLinearCeilDP(S, approx_abs_)) dp = wrap_series(S, dps) ndp = dpwrap(dp, name, name) return ndp
def CeilSqrtNatDP(): # promote to float # take sqrt # make ceil # coerce R = Rcomp() N = Nat() dps = (PromoteToFloatDP(N, R), SqrtRDP(R), CeilDP(R, R), CoerceToIntDP(R, N)) return wrap_series(N, dps)
def CeilSqrtNatDP(): # promote to float # take sqrt # make ceil # coerce R = Rcomp() N = Nat() dps = ( PromoteToFloatDP(N, R), SqrtRDP(R), CeilDP(R, R), CoerceToIntDP(R, N), ) return wrap_series(N, dps)
def get_approx_dp(S, name, approx_perc, approx_abs, approx_abs_S, max_value, max_value_S): from mcdp_posets.types_universe import express_value_in_isomorphic_space approx_abs_ = express_value_in_isomorphic_space(S1=approx_abs_S, s1=approx_abs, S2=S) max_value_ = express_value_in_isomorphic_space(S1=max_value_S, s1=max_value, S2=S) if approx_perc > 0: raise_desc(DPNotImplementedError, 'Approx_perc not implemented') dps = [] if max_value > 0: dp_max = FuncNotMoreThan(S, max_value_) dps.append(dp_max) if approx_abs_ > 0: dps.append(makeLinearCeilDP(S, approx_abs_)) dp = wrap_series(S, dps) ndp = dpwrap(dp, name, name) return ndp