    001    /**
    002     * Copyright 2009-2010 by The Broad Institute.
    003     *
    004
    005     */
    006    package org.broadinstitute.genee.matrix;
    007
    008    /**
    009     * Dataset implementation using two-dimensional float array.
    010     */
    011    public class RowMajorArray2DDataset extends FixedSizeAbstractDataset {
    012
    013        private float[][] array;
    014
    015        /**
    016         * Creates a new dataset with the specified name and array.
    017         *
    018         * @param the
    019         *            dataset name
    020         * @param array
    021         *            the data array
    022         */
    023        public RowMajorArray2DDataset(String name, float[][] array) {
    024            super(name, array.length, array[0].length);
    025            this.array = array;
    026
    027        }
    028
    029        /**
    030         * Creates a new dataset
    031         *
    032         * @param name
    033         *            the dataset name
    034         * @param rows
    035         *            the number of rows
    036         * @param columns
    037         *            the number of columns
    038         */
    039        public RowMajorArray2DDataset(String name, int rows, int columns) {
    040            super(name, rows, columns);
    041            array = new float[rows][columns];
    042        }
    043
    044        /**
    045         * Gets the underlying float[][] array
    046         *
    047         * @return the array
    048         */
    049        public float[][] getArray() {
    050            return array;
    051        }
    052
    053        @Override
    054        public float getValue(int row, int column) {
    055            return array[row][column];
    056        }
    057
    058        /**
    059         * Sets the underlying float[][] array
    060         *
    061         * @param array
    062         *            the array
    063         */
    064        public void setArray(float[][] array) {
    065            this.array = array;
    066
    067        }
    068
    069        public void setValue(int rowIndex, int columnIndex, float value) {
    070            array[rowIndex][columnIndex] = value;
    071        }
    072
    073    }