estimator.Cost.repeat

Cost.repeat(times, select=None, lll=None)[source]

Return a report with all costs multiplied by times.

Parameters:
  • d – a cost estimate
  • times – the number of times it should be run
  • select – toggle which fields ought to be repeated and which shouldn’t
  • lll – if set amplify lattice reduction times assuming the LLL algorithm suffices and costs lll
Returns:

a new cost estimate

We maintain a local dictionary which decides if an entry is multiplied by times or not. For example, δ would not be multiplied but “#bop” would be. This check is strict such that unknown entries raise an error. This is to enforce a decision on whether an entry should be multiplied by times if the function report reports on is called times often.

EXAMPLE:

sage: from estimator import Param, dual
sage: n, alpha, q = Param.Regev(128)

sage: dual(n, alpha, q).repeat(2^10)
                rop:   2^91.4
                  m:   2^18.6
                red:   2^91.4
            delta_0: 1.008810
               beta:      111
                  d:      376
                |v|:  736.521
             repeat:   2^29.0
            epsilon: 0.003906

sage: dual(n, alpha, q).repeat(1)
            rop:   2^81.4
              m:      376
            red:   2^81.4
        delta_0: 1.008810
           beta:      111
              d:      376
            |v|:  736.521
         repeat:   2^19.0
        epsilon: 0.003906