// Copyright ©2018 The Gonum Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. package hyperdual_test import ( "fmt" "gonum.org/v1/gonum/num/hyperdual" ) func ExampleNumber_fike() { // Calculate the value and first and second derivatives // of the function e^x/(sqrt(sin(x)^3 + cos(x)^3)). fn := func(x hyperdual.Number) hyperdual.Number { return hyperdual.Mul( hyperdual.Exp(x), hyperdual.Inv(hyperdual.Sqrt( hyperdual.Add( hyperdual.PowReal(hyperdual.Sin(x), 3), hyperdual.PowReal(hyperdual.Cos(x), 3))))) } v := fn(hyperdual.Number{Real: 1.5, E1mag: 1, E2mag: 1}) fmt.Printf("v=%.4f\n", v) fmt.Printf("fn(1.5)=%.4f\nfn'(1.5)=%.4f\nfn''(1.5)=%.4f\n", v.Real, v.E1mag, v.E1E2mag) // Output: // // v=(4.4978+4.0534ϵ₁+4.0534ϵ₂+9.4631ϵ₁ϵ₂) // fn(1.5)=4.4978 // fn'(1.5)=4.0534 // fn''(1.5)=9.4631 }