D4.java 3.45 KB
/**
 * 
 */
package is2.data;

import is2.util.DB;

/**
 * @author Dr. Bernd Bohnet, 30.10.2010
 *  
 * This class computes the mapping of features to the weight vector.
 */
final public class D4 extends DX {
	private long shift;
	private long h;
	

	private final Long2IntInterface _li; 
	public D4(Long2IntInterface li) {
		_li=li;
	}
	
	
	final public void clean() {
		v0=0;v1=0;v2=0;v3=0;v4=0;v5=0;v6=0;v7=0;v8=0;
		shift=0;h=0;
	}
	
	final public  void cz3(){
		if (v0<0||v1<0||v2<0) {  h=-1;return;}
		
		h= v0+v1*(shift =a0)+(long)v2*(shift *=a1);
		shift *=a2;
	}

	final public  long c3(){
		if (v0<0||v1<0||v2<0) {  h=-1;return h;}
		
		h= v0+v1*(shift =a0)+(long)v2*(shift *=a1);
		shift *=a2;
		return h;
	}
	
	final public void cz4(){		
		if (v0<0||v1<0||v2<0||v3<0) {h=-1;return;}
		
		h =v0+v1*(shift =a0)+v2*(shift *=a1)+v3*(shift *=a2);
		shift *=a3;		
	}

	final public long c4(){		
		if (v0<0||v1<0||v2<0||v3<0) {h=-1;return h;}
		
		h =v0+v1*(shift =a0)+v2*(shift *=a1)+v3*(shift *=a2);
		shift *=a3;		
		return h;
	}
	

	final public void cz5(){
		
		if (v0<0||v1<0||v2<0||v3<0||v4<0) {h=-1;return;}
		
		h =v0+v1*(shift =a0)+v2*(shift *=a1)+v3*(shift*=a2)+v4*(shift*=a3);
		shift*=a4;

	}

	final public long c5(){
		
		if (v0<0||v1<0||v2<0||v3<0||v4<0) {h=-1;return h;}
		
		h =v0+v1*(shift =a0)+v2*(shift *=a1)+v3*(shift *=a2)+v4*(shift*=a3);
		shift*=a4;
		return h;
	}
	

	final public void cz6(){

		if (v0<0||v1<0||v2<0||v3<0||v4<0||v5<0) {h=-1; return;}

		h =v0+v1*(shift =a0)+v2*(shift *=a1)+v3*(shift *=a2);
		h +=v4*(shift*=a3)+v5*(shift*=a4);
		shift*=a5;
	}

	final public long c6(){

		if (v0<0||v1<0||v2<0||v3<0||v4<0||v5<0) {h=-1; return h;}

		h =v0+v1*(shift =a0)+v2*(shift *=a1)+v3*(shift *=a2);
		h +=v4*(shift*=a3)+v5*(shift*=a4);
		shift*=a5;
		return h;
	}


	final public long cs(int b, int v) {
		if (h<0) {h=-1;	 return h;}
		
		h += v*shift;
		shift *=b;
		return h;

	}

	final public void csa(int b, int v, IFV f) {
		if (h<0) {h=-1;	return;}

		h += v*shift;
		shift *=b;
		f.add(_li.l2i(h));
	}

	final public long csa(int b, int v) {
		if (h<0) {h=-1;	return-1; }

		h += v*shift;
		shift *=b;
		return h;
	}

	public final long getVal(){
		return h;
	}
	
	public final void map(IFV f, long l){
		if (l>0) f.add(this._li.l2i(l));
	}
	
	/**
	 * @param f
	 */
	final public void add(IFV f) {
		f.add(_li.l2i(h));
	}

	final public void cz7() {
		if (v0<0||v1<0||v2<0||v3<0||v4<0||v5<0||v6<0) {h=-1; return;}

		h =v0+v1*(shift =a0)+v2*(shift *=a1)+v3*(shift *=a2);
		h +=v4*(shift*=a3)+v5*(shift*=a4)+v6*(shift*=a5);
		shift*=a6;
		
	}

	final public long c7() {
		if (v0<0||v1<0||v2<0||v3<0||v4<0||v5<0||v6<0) {h=-1; return h;}

		h =v0+v1*(shift =a0)+v2*(shift *=a1)+v3*(shift *=a2);
		h +=v4*(shift*=a3)+v5*(shift*=a4)+v6*(shift*=a5);
		shift*=a6;
		return h;
	}

	/**
	 * 
	 */
	final public void cz8() {
		if (v0<0||v1<0||v2<0||v3<0||v4<0||v5<0||v6<0||v7<0) {h=-1; return;}

		h =v0+v1*(shift =a0)+v2*(shift *=a1)+v3*(shift *=a2);
		h +=v4*(shift*=a3)+v5*(shift*=a4)+v6*(shift*=a5)+v7*(shift*=a6);
		shift*=a7;
	}

	final public void cz9() {
		if (v0<0||v1<0||v2<0||v3<0||v4<0||v5<0||v6<0||v7<0||v8<0) {h=-1; return;}

		h =v0+v1*(shift =a0)+v2*(shift *=a1)+v3*(shift *=a2);
		h +=v4*(shift*=a3)+v5*(shift*=a4)+v6*(shift*=a5)+v7*(shift*=a6)+v8*(shift*=a7);
		shift*=a8;
	}


	/* (non-Javadoc)
	 * @see is2.data.DX#computeLabeValue(short, short)
	 */
	@Override
	public int computeLabeValue(int label, int shift) {
		return label*shift;
	}


	public void fix() {
		
	}


}