github.com/wzzhu/tensor@v0.9.24/dense_reduction_methods.go (about)

     1  package tensor
     2  
     3  import "github.com/pkg/errors"
     4  
     5  func (t *Dense) Sum(along ...int) (retVal *Dense, err error) {
     6  	var e Engine = t.e
     7  	if sumer, ok := e.(Sumer); ok {
     8  		var ret Tensor
     9  		if ret, err = sumer.Sum(t, along...); err != nil {
    10  			return
    11  		}
    12  		return ret.(*Dense), nil
    13  	}
    14  	return nil, errors.Errorf("Engine does not support Sum")
    15  }
    16  
    17  func (t *Dense) Max(along ...int) (retVal *Dense, err error) {
    18  	var e Engine = t.e
    19  	if maxer, ok := e.(Maxer); ok {
    20  		var ret Tensor
    21  		if ret, err = maxer.Max(t, along...); err != nil {
    22  			return
    23  		}
    24  		return ret.(*Dense), nil
    25  	}
    26  	return nil, errors.Errorf("Engine does not support Max")
    27  }
    28  
    29  func (t *Dense) Min(along ...int) (retVal *Dense, err error) {
    30  	var e Engine = t.e
    31  	if miner, ok := e.(Miner); ok {
    32  		var ret Tensor
    33  		if ret, err = miner.Min(t, along...); err != nil {
    34  			return
    35  		}
    36  		return ret.(*Dense), nil
    37  	}
    38  	return nil, errors.Errorf("Engine does not support Min")
    39  }