aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGravatar Jason Gross <jgross@mit.edu>2017-10-14 16:00:59 -0400
committerGravatar Jason Gross <jasongross9@gmail.com>2017-10-18 23:01:29 -0400
commitd36702195ac82c2636b2f5842ae5fe210b7c415f (patch)
treea52b7d2a85bcdd643117650076ac93b0f015e580
parent1aa16a0a9fa9cd72e2573af59904d00294b96cd3 (diff)
Fix make_curve.py to handle files from generate_parameters
-rwxr-xr-xsrc/Specific/Framework/make_curve.py9
1 files changed, 7 insertions, 2 deletions
diff --git a/src/Specific/Framework/make_curve.py b/src/Specific/Framework/make_curve.py
index 9bd260d4e..70b88069d 100755
--- a/src/Specific/Framework/make_curve.py
+++ b/src/Specific/Framework/make_curve.py
@@ -18,7 +18,7 @@ def compute_c(modulus_str):
rest = negate_numexpr(rest.strip()[1:])
ret = []
for part in re.findall(r'(-?[0-9\^\*]+)', rest.replace(' ', '')):
- if part.isdigit():
+ if part.isdigit() or (part[:1] == '-' and part[1:].isdigit()):
ret.append(('1', part))
elif part[:2] == '2^' and part[2:].isdigit():
ret.append((part, '1'))
@@ -175,6 +175,11 @@ def nested_list_to_string(v):
print('ERROR: Invalid type in nested_list_to_string: %s' % str(type(v)))
assert(False)
+def as_bool(v):
+ if isinstance(v, str) or isinstance(v, unicode): return {'true':True, 'false':False}[v]
+ if isinstance(v, bool): return v
+ raise Exception('Not a bool: %s' % repr(v))
+
def make_curve_parameters(parameters):
def fix_option(term, scope_string=''):
if not isinstance(term, str) and not isinstance(term, unicode):
@@ -470,7 +475,7 @@ def main(*args):
outputs['CurveParameters.v'] = make_curve_parameters(parameters)
outputs['Synthesis.v'] = make_synthesis(output_prefix)
for arg in parameters['operations']:
- outputs[arg + '.v'] = make_synthesized_arg(arg, output_prefix, montgomery=(parameters.get('montgomery', 'false') == 'true'))
+ outputs[arg + '.v'] = make_synthesized_arg(arg, output_prefix, montgomery=as_bool(parameters.get('montgomery', 'false')))
outputs[arg + 'Display.v'] = make_display_arg(arg, output_prefix)
for fname in parameters.get('extra_files', []):
outputs[os.path.basename(fname)] = open(os.path.join(parameters_folder, fname), 'r').read()