github.com/wzzhu/tensor@v0.9.24/internal/execution/e.go (about)

     1  package execution // import "github.com/wzzhu/tensor/internal/execution"
     2  
     3  import (
     4  	"fmt"
     5  	"reflect"
     6  	"unsafe"
     7  
     8  	"github.com/wzzhu/tensor/internal/storage"
     9  )
    10  
    11  // E is the standard engine. It's to be embedded in package tensor
    12  type E struct{}
    13  
    14  // basic types supported.
    15  var (
    16  	Bool       = reflect.TypeOf(true)
    17  	Int        = reflect.TypeOf(int(1))
    18  	Int8       = reflect.TypeOf(int8(1))
    19  	Int16      = reflect.TypeOf(int16(1))
    20  	Int32      = reflect.TypeOf(int32(1))
    21  	Int64      = reflect.TypeOf(int64(1))
    22  	Uint       = reflect.TypeOf(uint(1))
    23  	Uint8      = reflect.TypeOf(uint8(1))
    24  	Uint16     = reflect.TypeOf(uint16(1))
    25  	Uint32     = reflect.TypeOf(uint32(1))
    26  	Uint64     = reflect.TypeOf(uint64(1))
    27  	Float32    = reflect.TypeOf(float32(1))
    28  	Float64    = reflect.TypeOf(float64(1))
    29  	Complex64  = reflect.TypeOf(complex64(1))
    30  	Complex128 = reflect.TypeOf(complex128(1))
    31  	String     = reflect.TypeOf("")
    32  
    33  	// aliases
    34  	Byte = Uint8
    35  
    36  	// extras
    37  	Uintptr       = reflect.TypeOf(uintptr(0))
    38  	UnsafePointer = reflect.TypeOf(unsafe.Pointer(&Uintptr))
    39  )
    40  
    41  func isScalar(a *storage.Header, t reflect.Type) bool { return a.TypedLen(t) == 1 }
    42  
    43  type errorIndices []int
    44  
    45  func (e errorIndices) Indices() []int { return []int(e) }
    46  func (e errorIndices) Error() string  { return fmt.Sprintf("Error in indices %v", []int(e)) }
    47  
    48  const (
    49  	lenMismatch        = `Cannot compare with differing lengths: %d and %d`
    50  	reductionErrMsg    = `Cannot reduce with function of type %T`
    51  	defaultValueErrMsg = `Expected default value of type %T. Got %v of %T instead`
    52  	typeMismatch       = `TypeMismatch: a %T and b %T`
    53  )