/*
 * Copyright 2017, Yahoo! Inc.
 * Licensed under the terms of the Apache License 2.0. See LICENSE file at the project root
 * for terms.
 */

/**
 * <p>This package contains a Matrix class that wraps one of several underlying matrix
 * implementations. It can be used to provide a stable public API independent of the
 * specific linear algebra package used for computation.</p>
 *
 * <p>These Matrix objects can be serialized and deserialized to/from a compact form.</p>
 */
package com.yahoo.sketches.matrix;
