github.com/jingcheng-WU/gonum@v0.9.1-0.20210323123734-f1a2a11a8f7b/num/quat/conj.go (about) 1 // Copyright ©2018 The Gonum Authors. All rights reserved. 2 // Use of this source code is governed by a BSD-style 3 // license that can be found in the LICENSE file. 4 5 // Copyright 2017 The Go Authors. All rights reserved. 6 // Use of this source code is governed by a BSD-style 7 // license that can be found in the LICENSE file. 8 9 package quat 10 11 // Conj returns the quaternion conjugate of q. 12 func Conj(q Number) Number { 13 return Number{Real: q.Real, Imag: -q.Imag, Jmag: -q.Jmag, Kmag: -q.Kmag} 14 } 15 16 // Inv returns the quaternion inverse of q. 17 func Inv(q Number) Number { 18 if IsInf(q) { 19 return zero 20 } 21 a := Abs(q) 22 return Scale(1/(a*a), Conj(q)) 23 }