github.com/qiaogw/arrgo@v0.0.8/logical_opt.go (about) 1 package arrgo 2 3 func (a *Arrb) LogicalAnd(b *Arrb) *Arrb { 4 var t = EmptyB(a.Shape...) 5 for i, v := range a.Data { 6 t.Data[i] = v && b.Data[i] 7 } 8 return t 9 } 10 11 func (a *Arrb) LogicalOr(b *Arrb) *Arrb { 12 var t = EmptyB(a.Shape...) 13 for i, v := range a.Data { 14 t.Data[i] = v || b.Data[i] 15 } 16 return t 17 } 18 19 func (a *Arrb) LogicalNot() *Arrb { 20 var t = EmptyB(a.Shape...) 21 for i, v := range a.Data { 22 t.Data[i] = !v 23 } 24 return t 25 } 26 27 func LogicalAnd(a, b *Arrb) *Arrb { 28 var t = EmptyB(a.Shape...) 29 for i, v := range a.Data { 30 t.Data[i] = v && b.Data[i] 31 } 32 return t 33 } 34 35 func LogicalOr(a, b *Arrb) *Arrb { 36 var t = EmptyB(a.Shape...) 37 for i, v := range a.Data { 38 t.Data[i] = v || b.Data[i] 39 } 40 return t 41 } 42 43 func LogicalNot(a *Arrb) *Arrb { 44 var t = EmptyB(a.Shape...) 45 for i, v := range a.Data { 46 t.Data[i] = !v 47 } 48 return t 49 }