Perf plot
This commit is contained in:
committed by
Linus Baumberger
parent
ca969564a6
commit
e7af3103e8
@@ -0,0 +1,100 @@
|
||||
# ADDs: n_iter * n_p * 4 +
|
||||
# n_iter * n_p * ceil(((double) (n_p - 7)) / 8) * (1 / (ceil(((double) (n_p - 7)) / 8))) * 7 * 14 +
|
||||
# n_iter * n_p * ceil(((double) (n_p - 7)) / 8) * (1 - 1 / (ceil(((double) (n_p - 7)) / 8))) * 224 +
|
||||
# n_iter * n_p * (n_p - floor((double) n_p / 8) * 8) * 14 +
|
||||
# n_iter * n_p * board.n_obstacles * 12 +
|
||||
# n_iter * n_p * 7
|
||||
|
||||
# MULTs: n_iter * n_p * 4 +
|
||||
# n_iter * n_p * ceil(((double) (n_p - 7)) / 8) * (1 / (ceil(((double) (n_p - 7)) / 8))) * 7 * 24 +
|
||||
# n_iter * n_p * ceil(((double) (n_p - 7)) / 8) * (1 - 1 / (ceil(((double) (n_p - 7)) / 8))) * 352 +
|
||||
# n_iter * n_p * (n_p - floor((double) n_p / 8) * 8) * 24 +
|
||||
# n_iter * n_p * board.n_obstacles * 19 +
|
||||
# n_iter * n_p * 17
|
||||
|
||||
# DIVs: n_iter * n_p * ceil(((double) (n_p - 7)) / 8) * (1 / (ceil(((double) (n_p - 7)) / 8))) * 7 +
|
||||
# n_iter * n_p * ceil(((double) (n_p - 7)) / 8) * (1 - 1 / (ceil(((double) (n_p - 7)) / 8))) * 8 +
|
||||
# n_iter * n_p * (n_p - floor((double) n_p / 8) * 8) +
|
||||
# n_iter * n_p * board.n_obstacles +
|
||||
# n_iter * n_p * 2
|
||||
|
||||
# SQRTs: n_iter * n_p * ceil(((double) (n_p - 7)) / 8) * (1 / (ceil(((double) (n_p - 7)) / 8))) * 7 * 3 +
|
||||
# n_iter * n_p * ceil(((double) (n_p - 7)) / 8) * (1 - 1 / (ceil(((double) (n_p - 7)) / 8))) * 24 +
|
||||
# n_iter * n_p * (n_p - floor((double) n_p / 8) * 8) * 3 +
|
||||
# n_iter * n_p * board.n_obstacles +
|
||||
# n_iter * n_p * 3
|
||||
|
||||
# EXPs: n_iter * n_p * ceil(((double) (n_p - 7)) / 8) * (1 / (ceil(((double) (n_p - 7)) / 8))) * 7 +
|
||||
# n_iter * n_p * (n_p - floor((double) n_p / 8) * 8) +
|
||||
# n_iter * n_p * board.n_obstacles
|
||||
|
||||
from math import ceil
|
||||
|
||||
|
||||
def adds(n_iter: int, n_p: int, n_obs: int = 2) -> int:
|
||||
chunks = ceil((n_p - 7) / 8) if n_p > 7 else 0
|
||||
remainder = n_p - int(n_p // 8) * 8
|
||||
if chunks > 0:
|
||||
term1 = n_iter * n_p * chunks * (1 / chunks) * 7 * 14
|
||||
term2 = n_iter * n_p * chunks * (1 - 1 / chunks) * 224
|
||||
else:
|
||||
term1 = 0
|
||||
term2 = 0
|
||||
return int(n_iter * n_p * 4 + term1 + term2 + n_iter * n_p * remainder * 14 +
|
||||
n_iter * n_p * n_obs * 12 + n_iter * n_p * 7)
|
||||
|
||||
|
||||
def mults(n_iter: int, n_p: int, n_obs: int = 2) -> int:
|
||||
chunks = ceil((n_p - 7) / 8) if n_p > 7 else 0
|
||||
remainder = n_p - int(n_p // 8) * 8
|
||||
if chunks > 0:
|
||||
term1 = n_iter * n_p * chunks * (1 / chunks) * 7 * 24
|
||||
term2 = n_iter * n_p * chunks * (1 - 1 / chunks) * 352
|
||||
else:
|
||||
term1 = 0
|
||||
term2 = 0
|
||||
return int(n_iter * n_p * 4 + term1 + term2 + n_iter * n_p * remainder * 24 +
|
||||
n_iter * n_p * n_obs * 19 + n_iter * n_p * 17)
|
||||
|
||||
|
||||
def divs(n_iter: int, n_p: int, n_obs: int = 2) -> int:
|
||||
chunks = ceil((n_p - 7) / 8) if n_p > 7 else 0
|
||||
remainder = n_p - int(n_p // 8) * 8
|
||||
if chunks > 0:
|
||||
term1 = n_iter * n_p * chunks * (1 / chunks) * 7
|
||||
term2 = n_iter * n_p * chunks * (1 - 1 / chunks) * 8
|
||||
else:
|
||||
term1 = 0
|
||||
term2 = 0
|
||||
return int(n_iter * n_p * 4 + term1 + term2 + n_iter * n_p * remainder +
|
||||
n_iter * n_p * n_obs + n_iter * n_p * 2)
|
||||
|
||||
|
||||
def sqrts(n_iter: int, n_p: int, n_obs: int = 2) -> int:
|
||||
chunks = ceil((n_p - 7) / 8) if n_p > 7 else 0
|
||||
remainder = n_p - int(n_p // 8) * 8
|
||||
if chunks > 0:
|
||||
term1 = n_iter * n_p * chunks * (1 / chunks) * 7 * 3
|
||||
term2 = n_iter * n_p * chunks * (1 - 1 / chunks) * 24
|
||||
else:
|
||||
term1 = 0
|
||||
term2 = 0
|
||||
return int(n_iter * n_p * 4 + term1 + term2 + n_iter * n_p * remainder * 3 +
|
||||
n_iter * n_p * n_obs + n_iter * n_p * 3)
|
||||
|
||||
|
||||
def exps(n_iter: int, n_p: int, n_obs: int = 2) -> int:
|
||||
chunks = ceil((n_p - 7) / 8) if n_p > 7 else 0
|
||||
remainder = n_p - int(n_p // 8) * 8
|
||||
if chunks > 0:
|
||||
term1 = n_iter * n_p * chunks * (1 / chunks) * 7
|
||||
else:
|
||||
term1 = 0
|
||||
return int(n_iter * n_p * 4 + term1 + n_iter * n_p * remainder +
|
||||
n_iter * n_p * n_obs + n_iter * n_p * 3)
|
||||
|
||||
|
||||
def total(n_iter: int, n_p: int, n_obs: int = 2) -> int:
|
||||
return adds(n_iter, n_p, n_obs) + mults(n_iter, n_p, n_obs) + divs(
|
||||
n_iter, n_p, n_obs) + sqrts(n_iter, n_p,
|
||||
n_obs) + exps(n_iter, n_p, n_obs) * 30
|
||||
Reference in New Issue
Block a user