/* harmony default export */

/* harmony export (binding) */

/* harmony import */

/*#__PURE__*/

/**
* @license Apache-2.0
*
* Copyright (c) 2018 The Stdlib Authors.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
*    http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/

/**
* Calculate p(X=x,C=i), i.e. the joint probability of observation x and class i.
*
* @param {Array} x - new observation
* @param {number} i - class indicator
* @returns {number} log probability
*/

/**
* Calculates class membership probabilities.
*
* @param {(Matrix|Array)} x - design matrix
* @returns {Array} class probabilities
*/

/**
* Calculates multinomial probability.
*
* @param {Array} x - new observation
* @param {number} i - class indicator
* @param {number} j - variable indicator
* @returns {number} probability
*/

/**
* Calculates the mean accuracy of the given test data and labels.
*
* @param {(Matrix|Array)} x - design matrix
* @param {Array} y - vector of class memberships
* @returns {number} mean accuracy
*/

/**
* Computes an element-wise subtraction.
*
* @param {NumberArray} arr - input array
* @param {(NumberArray|number)} x - either an array of equal length or a scalar
* @returns {NumberArray} output array
*/

/**
* Fit the data under the assumption that p(x_i|c) follows a multinomial distribution.
*
* ## Notes
*
* -   Assigns prior and conditional probabilities of BayesFit instance.
*
* @param {Matrix} x - design matrix
* @param {Array} y - vector of class memberships
* @returns {Void}
*/

/**
* Fit the data under the assumption that p(x_i|c) follows a normal distribution.
*
* ## Notes
*
* -   Assigns prior and conditional probabilities of BayesFit instance.
*
* @param {Matrix} x - design matrix
* @param {Array} y - vector of class memberships
* @returns {void}
*/

/**
* Fits a Gaussian naive Bayes model.
*
* @param {(Matrix|Array)} x - design matrix
* @param {Array} y - vector of class memberships
* @returns {GaussianFit} model fit
*/

/**
* Fits a multinomial naive Bayes model.
*
* @param {(Matrix|Array)} x - design matrix
* @param {Array} y - vector of class memberships
* @param {Object} [opts] - function options
* @param {number} [opts.alpha] - Laplace smoothing parameter
* @returns {MultinomialFit} MultinomialFit instance
*/

/**
* Naive Bayes fitting object constructor for multinomial distribution.
*
* @constructor
* @param {Matrix} x - design matrix
* @param {Array} y - vector of class memberships
* @param {number} alpha - Laplace smoothing parameter
* @returns {MultinomialFit} MultinomialFit instance
*/

/**
* Naive Bayes fitting object constructor for normal distribution.
*
* @constructor
* @param {Matrix} x - design matrix
* @param {Array} y - vector of class memberships
* @returns {GaussianFit} GaussianFit instance
*/

/**
* Predict class membership for new observation(s).
*
* @param {(Matrix|Array)} x - new observation(s)
* @returns {Array} array of predicted class memberships
*/

/**
* Predict class membership for one new observation.
*
* @param {Array} x - new observation
* @returns {(number|string)} predicted class membership
*/

/**
* Test if a value is an array of arrays.
*
* @module @stdlib/assert/is-array-array
*
* @example
* var isArrayArray = require( '@stdlib/assert/is-array-array' );
*
* var bool = isArrayArray( [ [], [] ] );
* // returns true
*
* bool = isArrayArray( [ {}, {} ] );
* // returns false
*
* bool = isArrayArray( [] );
* // returns false
*/

/***/

// Case 1: x is an array

// Case 2: scalar

// Case A: Predictions for multiple observations:

// Case B: Create prediction for a single observation:

// Case B: Only one new observation:

// EXPORTS //

// FUNCTIONS //

// MAIN //

// MODULES //

// PROPERTIES //

// VARIABLES //
