variance method

T variance()

Calculates element-wise variance of tensors.

Throws StateError if the iterable is empty.

Implementation

T variance() {
  if (isEmpty) {
    throw StateError('Iterable is empty');
  }
  final mean = this.mean();
  final resultBuilder = mean.toBuilder(copy: false);
  resultBuilder.tensorShape = mean.tensorShape;
  final squaredBuilder = resultBuilder.toBuilder(copy: false);
  var n = 0;
  for (var item in this) {
    squaredBuilder.setTensor(item);
    squaredBuilder.sub(mean);
    squaredBuilder.sq();
    resultBuilder.add(squaredBuilder.build(recycle: true));
    n++;
  }
  resultBuilder.divScalar(n);
  return resultBuilder.build() as T;
}