Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(152)

Side by Side Diff: third_party/go/src/golang.org/x/mobile/f32/f32.go

Issue 1275153002: Remove third_party/golang.org/x/mobile as it is no longer used with Go 1.5. (Closed) Base URL: https://github.com/domokit/mojo.git@master
Patch Set: Remove golang.org/x/mobile Created 5 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
(Empty)
1 // Copyright 2014 The Go 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 //go:generate go run gen.go -output table.go
6
7 // Package f32 implements some linear algebra and GL helpers for float32s.
8 //
9 // Types defined in this package have methods implementing common
10 // mathematical operations. The common form for these functions is
11 //
12 // func (dst *T) Op(lhs, rhs *T)
13 //
14 // which reads in traditional mathematical notation as
15 //
16 // dst = lhs op rhs.
17 //
18 // It is safe to use the destination address as the left-hand side,
19 // that is, dst *= rhs is dst.Mul(dst, rhs).
20 //
21 // WARNING
22 //
23 // The interface to this package is not stable. It will change considerably.
24 // Only use functions that provide package documentation. Semantics are
25 // non-obvious. Be prepared for the package name to change.
26 package f32 // import "golang.org/x/mobile/f32"
27
28 import (
29 "encoding/binary"
30 "fmt"
31 "math"
32 )
33
34 type Radian float32
35
36 func Cos(x float32) float32 {
37 const n = sinTableLen
38 i := uint32(int32(x * (n / math.Pi)))
39 i += n / 2
40 i &= 2*n - 1
41 if i >= n {
42 return -sinTable[i&(n-1)]
43 }
44 return sinTable[i&(n-1)]
45 }
46
47 func Sin(x float32) float32 {
48 const n = sinTableLen
49 i := uint32(int32(x * (n / math.Pi)))
50 i &= 2*n - 1
51 if i >= n {
52 return -sinTable[i&(n-1)]
53 }
54 return sinTable[i&(n-1)]
55 }
56
57 func Sqrt(x float32) float32 {
58 return float32(math.Sqrt(float64(x))) // TODO(crawshaw): implement
59 }
60
61 func Tan(x float32) float32 {
62 return float32(math.Tan(float64(x))) // TODO(crawshaw): fast version
63 }
64
65 // Bytes returns the byte representation of float32 values in the given byte
66 // order. byteOrder must be either binary.BigEndian or binary.LittleEndian.
67 func Bytes(byteOrder binary.ByteOrder, values ...float32) []byte {
68 le := false
69 switch byteOrder {
70 case binary.BigEndian:
71 case binary.LittleEndian:
72 le = true
73 default:
74 panic(fmt.Sprintf("invalid byte order %v", byteOrder))
75 }
76
77 b := make([]byte, 4*len(values))
78 for i, v := range values {
79 u := math.Float32bits(v)
80 if le {
81 b[4*i+0] = byte(u >> 0)
82 b[4*i+1] = byte(u >> 8)
83 b[4*i+2] = byte(u >> 16)
84 b[4*i+3] = byte(u >> 24)
85 } else {
86 b[4*i+0] = byte(u >> 24)
87 b[4*i+1] = byte(u >> 16)
88 b[4*i+2] = byte(u >> 8)
89 b[4*i+3] = byte(u >> 0)
90 }
91 }
92 return b
93 }
OLDNEW
« no previous file with comments | « third_party/go/src/golang.org/x/mobile/f32/affine_test.go ('k') | third_party/go/src/golang.org/x/mobile/f32/f32_test.go » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698