import numpy as np

@profile
def lup_func(x, scale=1.5e-2, nonlinearity=10, base=0) :
   flx = scale * nonlinearity * (x + base)
   np.arcsinh(flx, out=flx) 
   flx /= nonlinearity
   return flx


@profile
def test_func():
   scales = np.array([1, 0.7, 0.4])
   a = np.zeros((9000,9000,3))
   c = a.copy()
   c = a * scales
   I1 = np.sum(a*scales,axis=-1)
   I2 = np.sum(c,axis=-1)
   u = lup_func(a[...,0])
test_func()
