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  }