def eval_g(x, y):
    """ some vector-valued function """
    retval = algopy.zeros(3, dtype=x)
    retval[0] = algopy.sin(x**2 + y)
    retval[1] = algopy.cos(x+y) - x
    retval[2] = algopy.sin(x)**2 + algopy.cos(x)**2
    return retval
Пример #2
0
def eval_g(x, y):
    """ some vector-valued function """
    retval = algopy.zeros(3, dtype=x)
    retval[0] = algopy.sin(x**2 + y)
    retval[1] = algopy.cos(x + y) - x
    retval[2] = algopy.sin(x)**2 + algopy.cos(x)**2
    return retval
def f(x):
    nobs = x.shape[1:]
    f0 = x[0]**2 * sin(x[1])**2
    f1 = x[0]**2 * cos(x[1])**2
    out = zeros((2,) + nobs, dtype=x)
    out[0,:] = f0
    out[1,:] = f1
    return out
Пример #4
0
    def test_tangent_gradient(self):
        cg = CGraph()
        x = Function(1.)
        y1 = algopy.tan(x)
        cg.trace_off()
        cg.independentFunctionList = [x]
        cg.dependentFunctionList = [y1]
        g1 = cg.gradient([1.])[0]

        x = UTPM.init_jacobian(1.)

        assert_array_almost_equal(g1,UTPM.extract_jacobian(algopy.sin(x)/algopy.cos(x)))
        assert_array_almost_equal(g1,UTPM.extract_jacobian(algopy.tan(x)))
Пример #5
0
def rotate(x, y, U_direction_radians):
    x_r = x*cos(U_direction_radians)-y*sin(U_direction_radians)
    y_r = x*sin(U_direction_radians)+y*cos(U_direction_radians)
    return x_r, y_r
Пример #6
0
def rotate(x, y, U_direction_radians):
    x_r = x * cos(U_direction_radians) - y * sin(U_direction_radians)
    y_r = x * sin(U_direction_radians) + y * cos(U_direction_radians)
    return x_r, y_r
cstart = clock()
r8 = test_numdifftools_std()
cstop = clock()
LOGGER.debug('test numdifftools w/std-dev only:\n\telapsed time> %g [s]\n',
             cstop - cstart)

cstart = clock()
r9 = test_numdifftools_cov()
cstop = clock()
LOGGER.debug('test numdifftools w/covariance:\n\telapsed time> %g [s]\n',
             cstop - cstart)

# test numdifftools with algopy

G = lambda x: sin(x)

def test_algopy_std(avg=AVG, std=STD, f=G):
    c = clock()
    jac = nda.Derivative(f)
    LOGGER.debug('\t1> %g [s]', clock() - c)
    j = jac(avg)
    LOGGER.debug('\t2> %g [s]', clock() - c)
    std = np.abs(j*std)  # np.sqrt(j*std*std*j)
    LOGGER.debug('\t3> %g [s]', clock() - c)
    avg = f(avg)
    LOGGER.debug('\t4> %g [s]', clock() - c)
    dt = np.dtype([('avg', float), ('std', float)])
    LOGGER.debug('\t5> %g [s]', clock() - c)
    return np.array(zip(avg, std), dtype=dt)