RLPark 1.0.0
Reinforcement Learning Framework in Java
|
00001 package rlpark.plugin.rltoys.math.vector.implementations; 00002 00003 import rlpark.plugin.rltoys.math.vector.MutableVector; 00004 import rlpark.plugin.rltoys.math.vector.RealVector; 00005 import rlpark.plugin.rltoys.math.vector.SparseVector; 00006 00007 public class VectorNull implements SparseVector { 00008 private static final long serialVersionUID = 1316689252364870190L; 00009 private final int size; 00010 private final int[] activeIndexes = new int[] {}; 00011 00012 public VectorNull(int size) { 00013 this.size = size; 00014 } 00015 00016 @Override 00017 public int getDimension() { 00018 return size; 00019 } 00020 00021 @Override 00022 public double getEntry(int i) { 00023 return 0; 00024 } 00025 00026 @Override 00027 public double dotProduct(RealVector other) { 00028 return 0; 00029 } 00030 00031 @Override 00032 public MutableVector mapMultiply(double d) { 00033 return copyAsMutable(); 00034 } 00035 00036 @Override 00037 public MutableVector subtract(RealVector other) { 00038 return other.copyAsMutable().mapMultiplyToSelf(-1); 00039 } 00040 00041 @Override 00042 public MutableVector add(RealVector other) { 00043 return other.copyAsMutable(); 00044 } 00045 00046 @Override 00047 public MutableVector ebeMultiply(RealVector v) { 00048 return copyAsMutable(); 00049 } 00050 00051 @Override 00052 public MutableVector newInstance(int size) { 00053 return new SVector(size); 00054 } 00055 00056 @Override 00057 public MutableVector copyAsMutable() { 00058 return new SVector(size); 00059 } 00060 00061 @Override 00062 public RealVector copy() { 00063 return this; 00064 } 00065 00066 @Override 00067 public double[] accessData() { 00068 return new double[size]; 00069 } 00070 00071 @Override 00072 public RealVector clear() { 00073 return this; 00074 } 00075 00076 @Override 00077 public double dotProduct(double[] data) { 00078 return 0; 00079 } 00080 00081 @Override 00082 public void addSelfTo(double[] data) { 00083 } 00084 00085 @Override 00086 public void subtractSelfTo(double[] data) { 00087 } 00088 00089 @Override 00090 public int nonZeroElements() { 00091 return 0; 00092 } 00093 00094 @Override 00095 public int[] nonZeroIndexes() { 00096 return activeIndexes; 00097 } 00098 00099 @Override 00100 public double sum() { 00101 return 0; 00102 } 00103 }