ZoKrates icon indicating copy to clipboard operation
ZoKrates copied to clipboard

Check impact of unused parameters

Open Schaeff opened this issue 5 years ago • 1 comments

In this code

def main(field[2] pt1, field[2] pt2, field[10] context) -> (field[2]):

    field a = context[0]
    field d = context[1] 

    field u1 = pt1[0]
    field v1 = pt1[1]
    field u2 = pt2[0]
    field v2 = pt2[1]

    field uOut = (u1*v2 + v1*u2) / (1 + d*u1*u2*v1*v2)
    field vOut = (v1*v2 - a*u1*u2) / (1 - d*u1*u2*v1*v2)

    return [uOut, vOut] 

Most of context is not being used. Check the impact on the number of constraints, and if it exists find ways to optimize.

Schaeff avatar Mar 19 '19 10:03 Schaeff

doesn't seem to be a problem:

def main(field[2] pt1, field[2] pt2, field[10] context) -> (field):

    field a = context[0]

    field u1 = pt1[0]
    field v1 = pt1[1]
    field u2 = pt2[0]
    field v2 = pt2[1]

    field out = u1

    return out

compiles down to 1 constraint:

Compiled program:
def main(_0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13) -> (1):
        (1 * ~one) * (1 * _0) == 1 * ~out_0
         return ~out_0
Compiled code written to 'out'
Human readable code to 'out.code'
Number of constraints: 1

stefandeml avatar Mar 21 '19 15:03 stefandeml