Example #1
0
    def test_composition_log_with_base5_and_base2_scalar(self):
        var = Variable(4, 6)
        equation = var.log(5).log(2)

        expected_value = np.log(np.log(4) / np.log(5)) / np.log(2)
        expected_derivative = (6 / (4 * np.log(5))) * (1 / (
            (np.log(4) / np.log(5)) * np.log(2)))

        self.assertAlmostEqual(expected_value, equation.value)
        self.assertAlmostEqual(expected_derivative, equation.derivative)
Example #2
0
    def test_composition_log_with_base5_and_base2_vector(self):
        var = Variable(4, np.array([1, 5]))
        equation = var.log(5).log(2)
        expected_value = np.log(np.log(4) / np.log(5)) / np.log(2)
        expected_derivative = np.array([
            (1 / (4 * np.log(5))) * (1 /
                                     ((np.log(4) / np.log(5)) * np.log(2))),
            (5 / (4 * np.log(5))) * (1 / ((np.log(4) / np.log(5)) * np.log(2)))
        ])

        self.assertAlmostEqual(expected_value, equation.value)
        self.assertAlmostEqual(expected_derivative[0], equation.derivative[0])
        self.assertAlmostEqual(expected_derivative[1], equation.derivative[1])
Example #3
0
 def test_log_with_base2_and_base5_multivariate(self):
     x = Variable(2, np.array([1, 0]))
     y = Variable(3, np.array([0, 1]))
     f = (x * y).log(2) + y.log(5)
     x = 2
     y = 3
     self.assertAlmostEqual(
         f.value,
         np.log(x * y) / np.log(2) + np.log(y) / np.log(5))
     expected_derx = y / (x * y * np.log(2))
     expected_dery = x / (x * y * np.log(2)) + 1 / (y * np.log(5))
     self.assertAlmostEqual(f.derivative[0], expected_derx)
     self.assertAlmostEqual(f.derivative[1], expected_dery)
Example #4
0
    def test_log_with_base_5_scalar(self):
        var = Variable(2, 5)
        result = var.log(5)

        self.assertAlmostEqual(np.log(2) / np.log(5), result.value)
        self.assertAlmostEqual((1 / (2 * np.log(5))) * 5, result.derivative)
Example #5
0
    def test_log_scalar(self):
        var = Variable(5, 1.5)
        result = var.log()

        self.assertAlmostEqual(np.log(5), result.value)
        self.assertAlmostEqual((1 / 5) * 1.5, result.derivative)