public double getLinfDistance(finger_print fp){
		double score=0;		
		double max=0;
		for(Integer key : this.feature_map.keySet()){
			if(fp.feature_map.containsKey(key)){
				score=Math.pow(this.feature_map.get(key)-fp.feature_map.get(key), 1);
				if(score >max) max=score;
			}
			else {
				score=Math.pow(this.feature_map.get(key), 1);			
				if(score >max) max=score;
			}
		}
		for(Integer key : fp.feature_map.keySet()){
			if(!this.feature_map.containsKey(key)){
				score=Math.pow(fp.feature_map.get(key), 1);
				if(score >max) max=score;	
			}
		}
		return max;		
	}