function add( x, xScale ) {
	/* eslint-disable no-invalid-this */
	var xscaled;
	var inner;
	var i;

	inner = 0.0;
	if ( xScale === void 0 ) {
		xScale = 1.0;
	}
	for ( i = 0; i < x.length; i++ ) {
		xscaled = x[ i ] * xScale;
		inner += this._data[i] * xscaled;
		this._data[ i ] = this._data[ i ] + ( xscaled / this.scale );
	}
	// If an intercept is assumed, treat `x` as containing one additional element equal to one...
	if ( this.intercept ) {
		xscaled = 1.0 * xScale;
		inner += this._data[ i ] * xscaled;
		this._data[ i ] = this._data[ i ] + ( xscaled / this.scale );
	}
	this.norm += ( ( dot( x, x ) + ( ( this.intercept ) ? 1.0 : 0.0 ) ) *
		pow( xScale, 2 ) ) +
		( 2.0 * this.scale * inner );
}
Adds vector `x` to the weight vector after scaling its elements.

@private
@param {NumericArray} x - vector to add
@param {number} [xScale=1.0] - number to scale the elements of x with