n instance of Scalar.');
      }
      if (name in this.numerics) {
        throw new Error('Duplicate numeric name: ' + name + '.');
      }
      this.numerics[name] = numeric;
    },

    addDiagnostic(name, text) {
      if (typeof text !== 'string') {
        throw new Error('Diagnostic text must be a string.');
      }
      if (name in this.diagnostics) {
        throw new Error('Duplicate diagnostic name: ' + name + '.');
      }
      this.diagnostics[name] = text;
    },

    aggregateNumericsRecu