コード例 #1
0
ファイル: library.py プロジェクト: lance6716/SPDZ-2
def do_loop(condition, loop_fn):
    # store initial condition to stack
    pushint(condition if isinstance(condition,regint) else regint(condition))
    def wrapped_loop():
        # save condition to stack
        new_cond = regint.pop()
        # run the loop
        condition = loop_fn(new_cond)
        pushint(condition)
        return condition
    do_while(wrapped_loop)
    regint.pop()
コード例 #2
0
ファイル: library.py プロジェクト: lance6716/SPDZ-2
def while_loop(loop_body, condition, arg):
    if not callable(condition):
        raise CompilerError('Condition must be callable')
    # store arg in stack
    pre_condition = condition(arg)
    if not isinstance(pre_condition, (bool,int)) or pre_condition:
        pushint(arg if isinstance(arg,regint) else regint(arg))
        def loop_fn():
            result = loop_body(regint.pop())
            pushint(result)
            return condition(result)
        if_statement(pre_condition, lambda: do_while(loop_fn))
        regint.pop()
コード例 #3
0
def do_loop(condition, loop_fn):
    # store initial condition to stack
    pushint(condition if isinstance(condition, regint) else regint(condition))

    def wrapped_loop():
        # save condition to stack
        new_cond = regint.pop()
        # run the loop
        condition = loop_fn(new_cond)
        pushint(condition)
        return condition

    do_while(wrapped_loop)
    regint.pop()
コード例 #4
0
ファイル: library.py プロジェクト: SanjeevSolanki/MP-SPDZ
def while_loop(loop_body, condition, arg):
    if not callable(condition):
        raise CompilerError('Condition must be callable')
    # store arg in stack
    pre_condition = condition(arg)
    if not isinstance(pre_condition, (bool, int)) or pre_condition:
        pushint(arg if isinstance(arg, regint) else regint(arg))

        def loop_fn():
            result = loop_body(regint.pop())
            pushint(result)
            return condition(result)

        if_statement(pre_condition, lambda: do_while(loop_fn))
        regint.pop()
コード例 #5
0
ファイル: library.py プロジェクト: ryandeng1/mc2-copy
 def wrapped_loop():
     # save condition to stack
     new_cond = regint.pop()
     # run the loop
     condition = loop_fn(new_cond)
     pushint(condition)
     return condition
コード例 #6
0
ファイル: library.py プロジェクト: lance6716/SPDZ-2
 def wrapped_loop():
     # save condition to stack
     new_cond = regint.pop()
     # run the loop
     condition = loop_fn(new_cond)
     pushint(condition)
     return condition
コード例 #7
0
ファイル: library.py プロジェクト: ryandeng1/mc2-copy
 def loop_fn():
     result = loop_body(regint.pop())
     pushint(result)
     return condition(result)
コード例 #8
0
ファイル: library.py プロジェクト: lance6716/SPDZ-2
 def loop_fn():
     result = loop_body(regint.pop())
     pushint(result)
     return condition(result)