covariance method

T covariance()

Calculates covariance of x and y.

Throws ArgumentError when:

  • The arguments have non-equal lengths.
  • The arguments are empty.

Example

import 'package:calc/calc.dart';

void main() {
  final x = [1,2,3];
  final y = [4,3,2];
  final result = SamplesXY<int>(x,y).covariance();
  print('covariance: $result');
}

Implementation

T covariance() {
  final n = x.length;
  if (n != y.length) {
    throw ArgumentError(
        'Arguments have different lengths: ${x.length} != ${y.length}');
  }
  if (n == 0) {
    throw ArgumentError('Arguments are empty');
  }
  final meanX = x.mean();
  final meanY = y.mean();
  late Tensor sum;
  for (var i = 0; i < n; i++) {
    final term = (x[i] - meanX) * (y[i] - meanY);
    if (i == 0) {
      sum = term;
    } else {
      sum += term;
    }
  }
  return sum.scale(1 / n) as T;
}