diff options
author | Rich Hickey <richhickey@gmail.com> | 2008-05-30 21:23:25 +0000 |
---|---|---|
committer | Rich Hickey <richhickey@gmail.com> | 2008-05-30 21:23:25 +0000 |
commit | dbeb11e22fd1a30610b07cf27505e5ec0fd6e1e7 (patch) | |
tree | 4f2ee70746644f2adeb683864eeb6363a338a685 /src/jvm/clojure/lang/Numbers.java | |
parent | 2c04ba2ab5288e9d0952a4174889da422d73783d (diff) |
added aset!, aclone
Diffstat (limited to 'src/jvm/clojure/lang/Numbers.java')
-rw-r--r-- | src/jvm/clojure/lang/Numbers.java | 55 |
1 files changed, 55 insertions, 0 deletions
diff --git a/src/jvm/clojure/lang/Numbers.java b/src/jvm/clojure/lang/Numbers.java index d10d99e2..e833e693 100644 --- a/src/jvm/clojure/lang/Numbers.java +++ b/src/jvm/clojure/lang/Numbers.java @@ -1251,6 +1251,25 @@ static BitOps bitOps(Object x){ // executor.invokeAll(ops); // } +static final public class Indexer{ + int i; + + public Indexer(int i){ + this.i = i; + } + + public final int get(){ + return i; + } + + public final int inc(){ + return i += 1; + } + public final int inc(int n){ + return i += n; + } + +} static public class F{ static public float add(float x, float y) {return x + y;} static public float subtract(float x, float y) {return x - y;} @@ -1272,10 +1291,19 @@ static public class F{ return xs[i]; } + static public float aset(float[] xs, int i, float v){ + xs[i] = v; + return v; + } + static public int alength(float[] xs){ return xs.length; } + static public float[] aclone(float[] xs){ + return xs.clone(); + } + static public float[] vec(int size, Object init){ float[] ret = new float[size]; if(init instanceof Number) @@ -1648,10 +1676,19 @@ static public class D{ return xs[i]; } + static public double aset(double[] xs, int i, double v){ + xs[i] = v; + return v; + } + static public int alength(double[] xs){ return xs.length; } + static public double[] aclone(double[] xs){ + return xs.clone(); + } + static public double[] vec(int size, Object init){ double[] ret = new double[size]; if(init instanceof Number) @@ -2022,10 +2059,19 @@ static public class I{ return xs[i]; } + static public int aset(int[] xs, int i, int v){ + xs[i] = v; + return v; + } + static public int alength(int[] xs){ return xs.length; } + static public int[] aclone(int[] xs){ + return xs.clone(); + } + static public int[] vec(int size, Object init){ int[] ret = new int[size]; if(init instanceof Number) @@ -2397,10 +2443,19 @@ static public class L{ return xs[i]; } + static public long aset(long[] xs, int i, long v){ + xs[i] = v; + return v; + } + static public int alength(long[] xs){ return xs.length; } + static public long[] aclone(long[] xs){ + return xs.clone(); + } + static public long[] vec(int size, Object init){ long[] ret = new long[size]; if(init instanceof Number) |