fpy2 0.2.1__tar.gz → 0.2.2__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {fpy2-0.2.1 → fpy2-0.2.2}/PKG-INFO +1 -1
- {fpy2-0.2.1 → fpy2-0.2.2}/fpy2/analysis/__init__.py +7 -0
- {fpy2-0.2.1 → fpy2-0.2.2}/fpy2/analysis/format_infer/__init__.py +6 -0
- {fpy2-0.2.1 → fpy2-0.2.2}/fpy2/analysis/format_infer/analysis.py +504 -23
- {fpy2-0.2.1 → fpy2-0.2.2}/fpy2/analysis/format_infer/format.py +44 -16
- {fpy2-0.2.1 → fpy2-0.2.2}/fpy2/analysis/type_infer.py +18 -4
- fpy2-0.2.2/fpy2/analysis/value_class.py +707 -0
- {fpy2-0.2.1 → fpy2-0.2.2}/fpy2/ast/formatter.py +47 -25
- {fpy2-0.2.1 → fpy2-0.2.2}/fpy2/backend/cpp/compiler.py +11 -3
- {fpy2-0.2.1 → fpy2-0.2.2}/fpy2/backend/cpp/emitter.py +920 -80
- {fpy2-0.2.1 → fpy2-0.2.2}/fpy2/backend/cpp/storage.py +28 -2
- {fpy2-0.2.1 → fpy2-0.2.2}/fpy2/backend/cpp/target.py +13 -0
- fpy2-0.2.2/fpy2/backend/cpp/utils.py +43 -0
- {fpy2-0.2.1 → fpy2-0.2.2}/fpy2/backend/fpc.py +37 -12
- {fpy2-0.2.1 → fpy2-0.2.2}/fpy2/env.py +19 -1
- {fpy2-0.2.1 → fpy2-0.2.2}/fpy2/interpret/byte.py +77 -4
- {fpy2-0.2.1 → fpy2-0.2.2}/fpy2/libraries/core.py +11 -34
- {fpy2-0.2.1 → fpy2-0.2.2}/fpy2/number/context/mpb_fixed.py +7 -2
- {fpy2-0.2.1 → fpy2-0.2.2}/fpy2/number/engine/real.py +92 -14
- {fpy2-0.2.1 → fpy2-0.2.2}/fpy2/number/number/reals.py +8 -2
- {fpy2-0.2.1 → fpy2-0.2.2}/fpy2/ops.py +4 -4
- fpy2-0.2.2/fpy2/strategies/__init__.py +42 -0
- fpy2-0.2.2/fpy2/strategies/context_lift.py +61 -0
- fpy2-0.2.2/fpy2/strategies/fixed_rescale.py +88 -0
- fpy2-0.2.2/fpy2/strategies/float_lower.py +100 -0
- fpy2-0.2.2/fpy2/strategies/free_var.py +55 -0
- fpy2-0.2.2/fpy2/strategies/func_inline.py +92 -0
- fpy2-0.2.2/fpy2/strategies/iter_elim.py +89 -0
- fpy2-0.2.2/fpy2/strategies/loop_split.py +107 -0
- {fpy2-0.2.1 → fpy2-0.2.2}/fpy2/strategies/loop_unroll.py +69 -1
- fpy2-0.2.2/fpy2/strategies/mono.py +89 -0
- fpy2-0.2.2/fpy2/strategies/neg_zero_unfold.py +98 -0
- fpy2-0.2.2/fpy2/strategies/overflow_unfold.py +111 -0
- fpy2-0.2.2/fpy2/strategies/reduce_fusion.py +46 -0
- fpy2-0.2.2/fpy2/strategies/round_elim.py +57 -0
- {fpy2-0.2.1 → fpy2-0.2.2}/fpy2/strategies/simple.py +20 -0
- fpy2-0.2.2/fpy2/strategies/special_unfold.py +111 -0
- {fpy2-0.2.1 → fpy2-0.2.2}/fpy2/transform/__init__.py +6 -0
- {fpy2-0.2.1 → fpy2-0.2.2}/fpy2/transform/const_fold.py +6 -0
- fpy2-0.2.2/fpy2/transform/error.py +23 -0
- fpy2-0.2.2/fpy2/transform/float_to_fixed.py +575 -0
- {fpy2-0.2.1 → fpy2-0.2.2}/fpy2/transform/for_unroll.py +15 -58
- {fpy2-0.2.1 → fpy2-0.2.2}/fpy2/transform/func_inline.py +99 -12
- fpy2-0.2.2/fpy2/transform/rescale_fixed.py +515 -0
- fpy2-0.2.2/fpy2/transform/split_loop.py +413 -0
- fpy2-0.2.2/fpy2/transform/unfold_neg_zero.py +316 -0
- fpy2-0.2.2/fpy2/transform/unfold_overflow.py +618 -0
- fpy2-0.2.2/fpy2/transform/unfold_special.py +461 -0
- fpy2-0.2.2/fpy2/transform/utils.py +312 -0
- {fpy2-0.2.1 → fpy2-0.2.2}/fpy2/transform/while_unroll.py +2 -1
- {fpy2-0.2.1 → fpy2-0.2.2}/fpy2.egg-info/PKG-INFO +1 -1
- {fpy2-0.2.1 → fpy2-0.2.2}/fpy2.egg-info/SOURCES.txt +20 -0
- {fpy2-0.2.1 → fpy2-0.2.2}/pyproject.toml +1 -1
- fpy2-0.2.1/fpy2/backend/cpp/utils.py +0 -66
- fpy2-0.2.1/fpy2/strategies/__init__.py +0 -14
- fpy2-0.2.1/fpy2/strategies/loop_split.py +0 -35
- fpy2-0.2.1/fpy2/transform/split_loop.py +0 -216
- {fpy2-0.2.1 → fpy2-0.2.2}/LICENSE +0 -0
- {fpy2-0.2.1 → fpy2-0.2.2}/README.md +0 -0
- {fpy2-0.2.1 → fpy2-0.2.2}/fpy2/__init__.py +0 -0
- {fpy2-0.2.1 → fpy2-0.2.2}/fpy2/analysis/alias.py +0 -0
- {fpy2-0.2.1 → fpy2-0.2.2}/fpy2/analysis/array_size.py +0 -0
- {fpy2-0.2.1 → fpy2-0.2.2}/fpy2/analysis/call_graph.py +0 -0
- {fpy2-0.2.1 → fpy2-0.2.2}/fpy2/analysis/context_use.py +0 -0
- {fpy2-0.2.1 → fpy2-0.2.2}/fpy2/analysis/define_use.py +0 -0
- {fpy2-0.2.1 → fpy2-0.2.2}/fpy2/analysis/defs.py +0 -0
- {fpy2-0.2.1 → fpy2-0.2.2}/fpy2/analysis/escape.py +0 -0
- {fpy2-0.2.1 → fpy2-0.2.2}/fpy2/analysis/live_vars.py +0 -0
- {fpy2-0.2.1 → fpy2-0.2.2}/fpy2/analysis/partial_eval.py +0 -0
- {fpy2-0.2.1 → fpy2-0.2.2}/fpy2/analysis/purity.py +0 -0
- {fpy2-0.2.1 → fpy2-0.2.2}/fpy2/analysis/reachability.py +0 -0
- {fpy2-0.2.1 → fpy2-0.2.2}/fpy2/analysis/reaching_defs.py +0 -0
- {fpy2-0.2.1 → fpy2-0.2.2}/fpy2/analysis/syntax_check.py +0 -0
- {fpy2-0.2.1 → fpy2-0.2.2}/fpy2/ast/__init__.py +0 -0
- {fpy2-0.2.1 → fpy2-0.2.2}/fpy2/ast/fpyast.py +0 -0
- {fpy2-0.2.1 → fpy2-0.2.2}/fpy2/ast/visitor.py +0 -0
- {fpy2-0.2.1 → fpy2-0.2.2}/fpy2/backend/__init__.py +0 -0
- {fpy2-0.2.1 → fpy2-0.2.2}/fpy2/backend/backend.py +0 -0
- {fpy2-0.2.1 → fpy2-0.2.2}/fpy2/backend/cpp/__init__.py +0 -0
- {fpy2-0.2.1 → fpy2-0.2.2}/fpy2/backend/cpp/ops.py +0 -0
- {fpy2-0.2.1 → fpy2-0.2.2}/fpy2/backend/cpp/storage_infer.py +0 -0
- {fpy2-0.2.1 → fpy2-0.2.2}/fpy2/backend/cpp/types.py +0 -0
- {fpy2-0.2.1 → fpy2-0.2.2}/fpy2/backend/cpp/unbox.py +0 -0
- {fpy2-0.2.1 → fpy2-0.2.2}/fpy2/decorator.py +0 -0
- {fpy2-0.2.1 → fpy2-0.2.2}/fpy2/fpc_context.py +0 -0
- {fpy2-0.2.1 → fpy2-0.2.2}/fpy2/frontend/__init__.py +0 -0
- {fpy2-0.2.1 → fpy2-0.2.2}/fpy2/frontend/fpc.py +0 -0
- {fpy2-0.2.1 → fpy2-0.2.2}/fpy2/frontend/parser.py +0 -0
- {fpy2-0.2.1 → fpy2-0.2.2}/fpy2/function.py +0 -0
- {fpy2-0.2.1 → fpy2-0.2.2}/fpy2/interpret/__init__.py +0 -0
- {fpy2-0.2.1 → fpy2-0.2.2}/fpy2/interpret/interpreter.py +0 -0
- {fpy2-0.2.1 → fpy2-0.2.2}/fpy2/libraries/__init__.py +0 -0
- {fpy2-0.2.1 → fpy2-0.2.2}/fpy2/libraries/base.py +0 -0
- {fpy2-0.2.1 → fpy2-0.2.2}/fpy2/libraries/eft.py +0 -0
- {fpy2-0.2.1 → fpy2-0.2.2}/fpy2/libraries/matrix.py +0 -0
- {fpy2-0.2.1 → fpy2-0.2.2}/fpy2/libraries/metrics.py +0 -0
- {fpy2-0.2.1 → fpy2-0.2.2}/fpy2/libraries/vector.py +0 -0
- {fpy2-0.2.1 → fpy2-0.2.2}/fpy2/module.py +0 -0
- {fpy2-0.2.1 → fpy2-0.2.2}/fpy2/number/__init__.py +0 -0
- {fpy2-0.2.1 → fpy2-0.2.2}/fpy2/number/context/__init__.py +0 -0
- {fpy2-0.2.1 → fpy2-0.2.2}/fpy2/number/context/context.py +0 -0
- {fpy2-0.2.1 → fpy2-0.2.2}/fpy2/number/context/efloat.py +0 -0
- {fpy2-0.2.1 → fpy2-0.2.2}/fpy2/number/context/exponential.py +0 -0
- {fpy2-0.2.1 → fpy2-0.2.2}/fpy2/number/context/fixed.py +0 -0
- {fpy2-0.2.1 → fpy2-0.2.2}/fpy2/number/context/format.py +0 -0
- {fpy2-0.2.1 → fpy2-0.2.2}/fpy2/number/context/ieee754.py +0 -0
- {fpy2-0.2.1 → fpy2-0.2.2}/fpy2/number/context/mp_fixed.py +0 -0
- {fpy2-0.2.1 → fpy2-0.2.2}/fpy2/number/context/mp_float.py +0 -0
- {fpy2-0.2.1 → fpy2-0.2.2}/fpy2/number/context/mpb_float.py +0 -0
- {fpy2-0.2.1 → fpy2-0.2.2}/fpy2/number/context/mps_float.py +0 -0
- {fpy2-0.2.1 → fpy2-0.2.2}/fpy2/number/context/real.py +0 -0
- {fpy2-0.2.1 → fpy2-0.2.2}/fpy2/number/context/sm_fixed.py +0 -0
- {fpy2-0.2.1 → fpy2-0.2.2}/fpy2/number/engine/__init__.py +0 -0
- {fpy2-0.2.1 → fpy2-0.2.2}/fpy2/number/engine/engine.py +0 -0
- {fpy2-0.2.1 → fpy2-0.2.2}/fpy2/number/engine/gmp.py +0 -0
- {fpy2-0.2.1 → fpy2-0.2.2}/fpy2/number/format.py +0 -0
- {fpy2-0.2.1 → fpy2-0.2.2}/fpy2/number/globals.py +0 -0
- {fpy2-0.2.1 → fpy2-0.2.2}/fpy2/number/gmputils.py +0 -0
- {fpy2-0.2.1 → fpy2-0.2.2}/fpy2/number/native.py +0 -0
- {fpy2-0.2.1 → fpy2-0.2.2}/fpy2/number/number/__init__.py +0 -0
- {fpy2-0.2.1 → fpy2-0.2.2}/fpy2/number/number/flags.py +0 -0
- {fpy2-0.2.1 → fpy2-0.2.2}/fpy2/number/number/floats.py +0 -0
- {fpy2-0.2.1 → fpy2-0.2.2}/fpy2/number/round.py +0 -0
- {fpy2-0.2.1 → fpy2-0.2.2}/fpy2/primitive.py +0 -0
- {fpy2-0.2.1 → fpy2-0.2.2}/fpy2/rewrite/__init__.py +0 -0
- {fpy2-0.2.1 → fpy2-0.2.2}/fpy2/rewrite/applier.py +0 -0
- {fpy2-0.2.1 → fpy2-0.2.2}/fpy2/rewrite/matcher.py +0 -0
- {fpy2-0.2.1 → fpy2-0.2.2}/fpy2/rewrite/pattern.py +0 -0
- {fpy2-0.2.1 → fpy2-0.2.2}/fpy2/rewrite/rewrite.py +0 -0
- {fpy2-0.2.1 → fpy2-0.2.2}/fpy2/rewrite/subst.py +0 -0
- {fpy2-0.2.1 → fpy2-0.2.2}/fpy2/runner.py +0 -0
- {fpy2-0.2.1 → fpy2-0.2.2}/fpy2/transform/copy_propagate.py +0 -0
- {fpy2-0.2.1 → fpy2-0.2.2}/fpy2/transform/dead_code.py +0 -0
- {fpy2-0.2.1 → fpy2-0.2.2}/fpy2/transform/enumerate_elim.py +0 -0
- {fpy2-0.2.1 → fpy2-0.2.2}/fpy2/transform/for_bundling.py +0 -0
- {fpy2-0.2.1 → fpy2-0.2.2}/fpy2/transform/for_unpack.py +0 -0
- {fpy2-0.2.1 → fpy2-0.2.2}/fpy2/transform/free_var_elim.py +0 -0
- {fpy2-0.2.1 → fpy2-0.2.2}/fpy2/transform/if_bundling.py +0 -0
- {fpy2-0.2.1 → fpy2-0.2.2}/fpy2/transform/iter_elim.py +0 -0
- {fpy2-0.2.1 → fpy2-0.2.2}/fpy2/transform/lift_context.py +0 -0
- {fpy2-0.2.1 → fpy2-0.2.2}/fpy2/transform/monomorphize.py +0 -0
- {fpy2-0.2.1 → fpy2-0.2.2}/fpy2/transform/reduce_fusion.py +0 -0
- {fpy2-0.2.1 → fpy2-0.2.2}/fpy2/transform/rename_target.py +0 -0
- {fpy2-0.2.1 → fpy2-0.2.2}/fpy2/transform/round_elim.py +0 -0
- {fpy2-0.2.1 → fpy2-0.2.2}/fpy2/transform/simplify_if.py +0 -0
- {fpy2-0.2.1 → fpy2-0.2.2}/fpy2/transform/specialize.py +0 -0
- {fpy2-0.2.1 → fpy2-0.2.2}/fpy2/transform/subst_var.py +0 -0
- {fpy2-0.2.1 → fpy2-0.2.2}/fpy2/transform/while_bundling.py +0 -0
- {fpy2-0.2.1 → fpy2-0.2.2}/fpy2/transform/zip_elim.py +0 -0
- {fpy2-0.2.1 → fpy2-0.2.2}/fpy2/types.py +0 -0
- {fpy2-0.2.1 → fpy2-0.2.2}/fpy2/utils/__init__.py +0 -0
- {fpy2-0.2.1 → fpy2-0.2.2}/fpy2/utils/bits.py +0 -0
- {fpy2-0.2.1 → fpy2-0.2.2}/fpy2/utils/compare.py +0 -0
- {fpy2-0.2.1 → fpy2-0.2.2}/fpy2/utils/decorator.py +0 -0
- {fpy2-0.2.1 → fpy2-0.2.2}/fpy2/utils/default.py +0 -0
- {fpy2-0.2.1 → fpy2-0.2.2}/fpy2/utils/float_params.py +0 -0
- {fpy2-0.2.1 → fpy2-0.2.2}/fpy2/utils/fractions.py +0 -0
- {fpy2-0.2.1 → fpy2-0.2.2}/fpy2/utils/gensym.py +0 -0
- {fpy2-0.2.1 → fpy2-0.2.2}/fpy2/utils/identifier.py +0 -0
- {fpy2-0.2.1 → fpy2-0.2.2}/fpy2/utils/inspect.py +0 -0
- {fpy2-0.2.1 → fpy2-0.2.2}/fpy2/utils/iterator.py +0 -0
- {fpy2-0.2.1 → fpy2-0.2.2}/fpy2/utils/loader.py +0 -0
- {fpy2-0.2.1 → fpy2-0.2.2}/fpy2/utils/location.py +0 -0
- {fpy2-0.2.1 → fpy2-0.2.2}/fpy2/utils/ordering.py +0 -0
- {fpy2-0.2.1 → fpy2-0.2.2}/fpy2/utils/string.py +0 -0
- {fpy2-0.2.1 → fpy2-0.2.2}/fpy2/utils/uninit.py +0 -0
- {fpy2-0.2.1 → fpy2-0.2.2}/fpy2/utils/unionfind.py +0 -0
- {fpy2-0.2.1 → fpy2-0.2.2}/fpy2.egg-info/dependency_links.txt +0 -0
- {fpy2-0.2.1 → fpy2-0.2.2}/fpy2.egg-info/requires.txt +0 -0
- {fpy2-0.2.1 → fpy2-0.2.2}/fpy2.egg-info/top_level.txt +0 -0
- {fpy2-0.2.1 → fpy2-0.2.2}/setup.cfg +0 -0
|
@@ -37,3 +37,10 @@ from .reaching_defs import (
|
|
|
37
37
|
)
|
|
38
38
|
from .syntax_check import FPySyntaxError, SyntaxCheck
|
|
39
39
|
from .type_infer import TypeAnalysis, TypeInfer, TypeInferError
|
|
40
|
+
from .value_class import (
|
|
41
|
+
ValueClass,
|
|
42
|
+
ValueClassAnalysis,
|
|
43
|
+
ValueClassInfer,
|
|
44
|
+
class_of,
|
|
45
|
+
representable_classes,
|
|
46
|
+
)
|
|
@@ -11,6 +11,9 @@ from .analysis import (
|
|
|
11
11
|
SetFormat,
|
|
12
12
|
TupleFormat,
|
|
13
13
|
exact_binop,
|
|
14
|
+
exact_exp2,
|
|
15
|
+
exact_logb,
|
|
16
|
+
exact_select,
|
|
14
17
|
exact_unop,
|
|
15
18
|
is_bottom,
|
|
16
19
|
round_is_identity,
|
|
@@ -30,6 +33,9 @@ __all__ = [
|
|
|
30
33
|
'SetFormat',
|
|
31
34
|
'TupleFormat',
|
|
32
35
|
'exact_binop',
|
|
36
|
+
'exact_exp2',
|
|
37
|
+
'exact_logb',
|
|
38
|
+
'exact_select',
|
|
33
39
|
'exact_unop',
|
|
34
40
|
'is_bottom',
|
|
35
41
|
'round_is_identity',
|