/** * Copyright (c) 2012 Michael Kutschke. * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at * http://www.eclipse.org/legal/epl-v10.html * * Contributors: * Michael Kutschke - initial API and implementation. */ package org.eclipse.recommenders.jayes.factor.arraywrapper; public interface IArrayWrapper extends Cloneable, Iterable<Number> { void setArray(double... array); void setArray(float... array); double[] toDoubleArray(); float[] toFloatArray(); void set(int index, double d); void set(int index, float d); void mulAssign(int index, double d); void mulAssign(int index, float d); void mulAssign(int index, IArrayWrapper arg, int argIndex); void addAssign(int index, double d); void addAssign(int index, float d); void addAssign(int index, IArrayWrapper arg, int argIndex); double getDouble(int index); float getFloat(int index); int length(); void copy(double... array); void copy(float... array); void copy(IArrayWrapper array); void fill(double d); void fill(float d); void arrayCopy(IArrayWrapper src, int srcOffset, int destOffset, int length); IArrayWrapper clone(); void newArray(int capacity); /** * @return size of a single array element in bytes */ int sizeOfElement(); }