examples: add most docstrings
This commit is contained in:
@@ -8,6 +8,7 @@ import (
|
||||
|
||||
func main() {
|
||||
TEXT("Add", "func(x, y uint64) uint64")
|
||||
Doc("Add adds x and y.")
|
||||
x := Load(Param("x"), GP64v())
|
||||
y := Load(Param("y"), GP64v())
|
||||
ADDQ(x, y)
|
||||
|
||||
@@ -2,4 +2,5 @@
|
||||
|
||||
package add
|
||||
|
||||
// Add adds x and y.
|
||||
func Add(x uint64, y uint64) uint64
|
||||
|
||||
@@ -7,19 +7,22 @@ import (
|
||||
)
|
||||
|
||||
func main() {
|
||||
TEXT("Real", "func(x complex128) float64")
|
||||
r := Load(Param("x").Real(), Xv())
|
||||
TEXT("Real", "func(z complex128) float64")
|
||||
Doc("Real returns the real part of z.")
|
||||
r := Load(Param("z").Real(), Xv())
|
||||
Store(r, ReturnIndex(0))
|
||||
RET()
|
||||
|
||||
TEXT("Imag", "func(x complex128) float64")
|
||||
i := Load(Param("x").Imag(), Xv())
|
||||
TEXT("Imag", "func(z complex128) float64")
|
||||
Doc("Imag returns the imaginary part of z.")
|
||||
i := Load(Param("z").Imag(), Xv())
|
||||
Store(i, ReturnIndex(0))
|
||||
RET()
|
||||
|
||||
TEXT("Norm", "func(x complex128) float64")
|
||||
r = Load(Param("x").Real(), Xv())
|
||||
i = Load(Param("x").Imag(), Xv())
|
||||
TEXT("Norm", "func(z complex128) float64")
|
||||
Doc("Norm returns the complex norm of z.")
|
||||
r = Load(Param("z").Real(), Xv())
|
||||
i = Load(Param("z").Imag(), Xv())
|
||||
MULSD(r, r)
|
||||
MULSD(i, i)
|
||||
ADDSD(i, r)
|
||||
|
||||
@@ -2,22 +2,22 @@
|
||||
|
||||
#include "textflag.h"
|
||||
|
||||
// func Real(x complex128) float64
|
||||
// func Real(z complex128) float64
|
||||
TEXT ·Real(SB), 0, $0-24
|
||||
MOVSD x_real(FP), X0
|
||||
MOVSD z_real(FP), X0
|
||||
MOVSD X0, ret+16(FP)
|
||||
RET
|
||||
|
||||
// func Imag(x complex128) float64
|
||||
// func Imag(z complex128) float64
|
||||
TEXT ·Imag(SB), 0, $0-24
|
||||
MOVSD x_imag+8(FP), X0
|
||||
MOVSD z_imag+8(FP), X0
|
||||
MOVSD X0, ret+16(FP)
|
||||
RET
|
||||
|
||||
// func Norm(x complex128) float64
|
||||
// func Norm(z complex128) float64
|
||||
TEXT ·Norm(SB), 0, $0-24
|
||||
MOVSD x_real(FP), X0
|
||||
MOVSD x_imag+8(FP), X1
|
||||
MOVSD z_real(FP), X0
|
||||
MOVSD z_imag+8(FP), X1
|
||||
MULSD X0, X0
|
||||
MULSD X1, X1
|
||||
ADDSD X1, X0
|
||||
|
||||
@@ -9,8 +9,8 @@ import (
|
||||
//go:generate go run asm.go -out complex.s -stubs stub.go
|
||||
|
||||
func TestReal(t *testing.T) {
|
||||
expect := func(x complex128) float64 {
|
||||
return real(x)
|
||||
expect := func(z complex128) float64 {
|
||||
return real(z)
|
||||
}
|
||||
if err := quick.CheckEqual(Real, expect, nil); err != nil {
|
||||
t.Fatal(err)
|
||||
@@ -18,8 +18,8 @@ func TestReal(t *testing.T) {
|
||||
}
|
||||
|
||||
func TestImag(t *testing.T) {
|
||||
expect := func(x complex128) float64 {
|
||||
return imag(x)
|
||||
expect := func(z complex128) float64 {
|
||||
return imag(z)
|
||||
}
|
||||
if err := quick.CheckEqual(Imag, expect, nil); err != nil {
|
||||
t.Fatal(err)
|
||||
@@ -27,8 +27,8 @@ func TestImag(t *testing.T) {
|
||||
}
|
||||
|
||||
func TestNorm(t *testing.T) {
|
||||
expect := func(x complex128) float64 {
|
||||
return math.Sqrt(real(x)*real(x) + imag(x)*imag(x))
|
||||
expect := func(z complex128) float64 {
|
||||
return math.Sqrt(real(z)*real(z) + imag(z)*imag(z))
|
||||
}
|
||||
if err := quick.CheckEqual(Norm, expect, nil); err != nil {
|
||||
t.Fatal(err)
|
||||
|
||||
@@ -2,8 +2,11 @@
|
||||
|
||||
package complex
|
||||
|
||||
func Real(x complex128) float64
|
||||
// Real returns the real part of z.
|
||||
func Real(z complex128) float64
|
||||
|
||||
func Imag(x complex128) float64
|
||||
// Imag returns the imaginary part of z.
|
||||
func Imag(z complex128) float64
|
||||
|
||||
func Norm(x complex128) float64
|
||||
// Norm returns the complex norm of z.
|
||||
func Norm(z complex128) float64
|
||||
|
||||
@@ -21,6 +21,7 @@ func main() {
|
||||
DATA(39, U8(0x77))
|
||||
|
||||
TEXT("DataAt", "func(i int) byte")
|
||||
Doc("DataAt returns byte i in the 'bytes' global data section.")
|
||||
i := Load(Param("i"), GP64v())
|
||||
ptr := Mem{Base: GP64v()}
|
||||
LEAQ(bytes, ptr.Base)
|
||||
|
||||
@@ -2,4 +2,5 @@
|
||||
|
||||
package data
|
||||
|
||||
// DataAt returns byte i in the 'bytes' global data section.
|
||||
func DataAt(i int) byte
|
||||
|
||||
@@ -15,6 +15,7 @@ const (
|
||||
|
||||
func main() {
|
||||
TEXT("Hash64", "func(data []byte) uint64")
|
||||
Doc("Hash64 computes the FNV-1a hash of data.")
|
||||
ptr := Load(Param("data").Base(), GP64v())
|
||||
n := Load(Param("data").Len(), GP64v())
|
||||
|
||||
|
||||
@@ -2,4 +2,5 @@
|
||||
|
||||
package fnv1a
|
||||
|
||||
// Hash64 computes the FNV-1a hash of data.
|
||||
func Hash64(data []byte) uint64
|
||||
|
||||
@@ -9,6 +9,7 @@ import (
|
||||
|
||||
func main() {
|
||||
TEXT("EncodeInt", "func(lat, lng float64) uint64")
|
||||
Doc("EncodeInt computes the 64-bit integer geohash of (lat, lng).")
|
||||
lat := Load(Param("lat"), Xv())
|
||||
lng := Load(Param("lng"), Xv())
|
||||
|
||||
|
||||
@@ -2,4 +2,5 @@
|
||||
|
||||
package geohash
|
||||
|
||||
// EncodeInt computes the 64-bit integer geohash of (lat, lng).
|
||||
func EncodeInt(lat float64, lng float64) uint64
|
||||
|
||||
@@ -10,6 +10,7 @@ import (
|
||||
|
||||
func main() {
|
||||
TEXT("block", "func(h *[5]uint32, m []byte)")
|
||||
Doc("block SHA-1 hashes the 64-byte message m into the running state h.")
|
||||
h := Mem{Base: Load(Param("h"), GP64v())}
|
||||
m := Mem{Base: Load(Param("m").Base(), GP64v())}
|
||||
|
||||
|
||||
@@ -2,4 +2,5 @@
|
||||
|
||||
package sha1
|
||||
|
||||
// block SHA-1 hashes the 64-byte message m into the running state h.
|
||||
func block(h *[5]uint32, m []byte)
|
||||
|
||||
@@ -39,6 +39,7 @@ func makelabels(name string, n int) []string {
|
||||
func main() {
|
||||
Package("github.com/mmcloughlin/avo/examples/stadtx")
|
||||
TEXT("Hash", "func(state *State, key []byte) uint64")
|
||||
Doc("Hash computes the Stadtx hash.")
|
||||
|
||||
statePtr := Load(Param("state"), GP64v())
|
||||
ptr := Load(Param("key").Base(), GP64v())
|
||||
|
||||
@@ -2,4 +2,5 @@
|
||||
|
||||
package stadtx
|
||||
|
||||
// Hash computes the Stadtx hash.
|
||||
func Hash(state *State, key []byte) uint64
|
||||
|
||||
@@ -9,6 +9,7 @@ import (
|
||||
|
||||
func main() {
|
||||
TEXT("Sum", "func(xs []uint64) uint64")
|
||||
Doc("Sum returns the sum of the elements in xs.")
|
||||
ptr := Load(Param("xs").Base(), GP64v())
|
||||
n := Load(Param("xs").Len(), GP64v())
|
||||
s := GP64v()
|
||||
|
||||
@@ -2,4 +2,5 @@
|
||||
|
||||
package sum
|
||||
|
||||
// Sum returns the sum of the elements in xs.
|
||||
func Sum(xs []uint64) uint64
|
||||
|
||||
Reference in New Issue
Block a user