forked from gorgonia/tensor
-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy patherrors.go
65 lines (55 loc) · 2.44 KB
/
errors.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
package tensor
import "fmt"
// NoOpError is a useful for operations that have no op.
type NoOpError interface {
NoOp() bool
}
// MathError is an error that occurs in an Array. It lists the indices for which an error has happened
type MathError interface {
Indices() []int
}
type noopError struct{}
func (e noopError) NoOp() bool { return true }
func (e noopError) Error() string { return "NoOp" }
func handleNoOp(err error) error {
if err == nil {
return nil
}
if _, ok := err.(NoOpError); ok {
return nil
}
return err
}
type errorIndices []int
func (e errorIndices) Indices() []int { return []int(e) }
func (e errorIndices) Error() string { return fmt.Sprintf("Error in indices %v", []int(e)) }
const (
emptyTensor = "Tensor is uninitialized (no shape, no data)"
dimMismatch = "Dimension mismatch. Expected %d, got %d"
atleastDims = "Tensor has to be at least %d dimensions"
dtypeMismatch = "Dtype mismatch. Expected %v. Got %v"
indexOOBAxis = "Index %d is out of bounds for axis %d which has size %d"
invalidAxis = "Invalid axis %d for ndarray with %d dimensions"
repeatedAxis = "repeated axis %d in permutation pattern"
invalidSliceIndex = "Invalid slice index. Start: %d, End: %d"
sliceIndexOOB = "Slice index out of bounds: Start: %d, End: %d. Length: %d"
broadcastError = "Cannot broadcast together. Resulting shape will be at least (%d, 1). Repeats is (%d, 1)"
lenMismatch = "Cannot compare with differing lengths: %d and %d"
typeMismatch = "TypeMismatch: a %v and b %v"
typeclassMismatch = "Typeclass mismatch on %v"
shapeMismatch = "Shape mismatch. Expected %v. Got %v"
sizeMismatch = "Size Mismatch. %d and %d"
reuseReshapeErr = "Failed to reshape the reuse *Dense from into %v. Size was: %d"
incrReshapeErr = "Failed to reshape the incr *Dense into %v. Size was: %d"
retValReshapeErr = "Failed to reshape the retVal *Dense into %v. Size was: %d"
div0 = "Division by 0. Index was %v"
div0General = "Division by 0"
opFail = "Failed to perform %v"
extractionFail = "Failed to extract %v from %T"
unknownState = "Unknown state reached: Safe %t, Incr %t, Reuse %t"
unsupportedDtype = "Array of %v is unsupported for %v"
maskRequired = "Masked array type required for %v"
inaccessibleData = "Data in %p inaccessible"
methodNYI = "%q not yet implemented for %v"
typeNYI = "%q not yet implemented for interactions with %T"
)