move a couple math functions into their own file
This commit is contained in:
parent
258c42d963
commit
c36aead212
5 changed files with 27 additions and 25 deletions
|
@ -1,5 +1,6 @@
|
|||
from .closures import *
|
||||
from .colors import *
|
||||
from .math import *
|
||||
from .prog80 import prog
|
||||
from .scoring import *
|
||||
from .utils import *
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
from .utils import scalar_softplus
|
||||
from .math import scalar_softplus
|
||||
from .utils_np import do_bounding
|
||||
|
||||
check = object() # secret "key" to pass to wrap_untrustworthy to extract feval_count
|
||||
|
|
23
thursday/utilities/math.py
Normal file
23
thursday/utilities/math.py
Normal file
|
@ -0,0 +1,23 @@
|
|||
import math
|
||||
|
||||
feps = 2.0**-23.0
|
||||
tiniest = 2.0**-1022.0
|
||||
|
||||
|
||||
def scalar_softplus(x):
|
||||
if x >= 33.276435657655455:
|
||||
return float(x)
|
||||
elif x <= -745.13330078125:
|
||||
return 0.0
|
||||
else:
|
||||
return math.log1p(math.exp(x))
|
||||
|
||||
|
||||
def phi(d):
|
||||
# phi(1) = golden ratio
|
||||
# phi(2) = plastic constant
|
||||
# phi(3) = the positive real root of x**4-x-1
|
||||
x = 2.0
|
||||
for i in range(30 if d == 1 else max(10, 28 - d)):
|
||||
x = pow(1 + x, 1 / (d + 1))
|
||||
return x
|
|
@ -1,27 +1,4 @@
|
|||
from dataclasses import dataclass
|
||||
import math
|
||||
|
||||
feps = 2.0**-23.0
|
||||
tiniest = 2.0**-1022.0
|
||||
|
||||
|
||||
def scalar_softplus(x):
|
||||
if x >= 33.276435657655455:
|
||||
return float(x)
|
||||
elif x <= -745.13330078125:
|
||||
return 0.0
|
||||
else:
|
||||
return math.log1p(math.exp(x))
|
||||
|
||||
|
||||
def phi(d):
|
||||
# phi(1) = golden ratio
|
||||
# phi(2) = plastic constant
|
||||
# phi(3) = the positive real root of x**4-x-1
|
||||
x = 2.0
|
||||
for i in range(30 if d == 1 else max(10, 28 - d)):
|
||||
x = pow(1 + x, 1 / (d + 1))
|
||||
return x
|
||||
|
||||
|
||||
@dataclass
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
# i've separated numpy-dependent methods from the rest of the utils.
|
||||
from .colors import m33, m34, m93
|
||||
from .utils import AcquireForWriting, merge_summaries, feps
|
||||
from .math import feps
|
||||
from .utils import AcquireForWriting, merge_summaries
|
||||
from time import time
|
||||
import numpy as np
|
||||
|
||||
|
|
Loading…
Reference in a new issue