package mikera.vectorz.impl;
/**
* Abstract base class for boolean vectors
*
* Boolean vectors only support two element values, 0.0 and 1.0
*
* @author Mike
*
*/
@SuppressWarnings("serial")
public abstract class ABooleanVector extends ASizedVector {
protected ABooleanVector(int length) {
super(length);
}
@Override
public boolean isBoolean() {
return true;
}
@Override
public boolean isElementConstrained() {
return true;
}
@Override
public boolean isFullyMutable() {
return false;
}
@Override
public boolean hasUncountable() {
return false;
}
/**
* Returns the sum of all the elements raised to a specified power
* @return
*/
@Override
public double elementPowSum(double p) {
return nonZeroCount();
}
/**
* Returns the sum of the absolute values of all the elements raised to a specified power
* @return
*/
@Override
public double elementAbsPowSum(double p) {
return elementPowSum(p);
}
}