package com.formulasearchengine.mathosphere.mathpd.distances.earthmover; import java.util.ArrayList; import java.util.List; import java.util.Map; /** * Provides wrapping functionality for invoking the Earth Mover Distance. * Created by Felix Hamborg on 13.12.16. */ public class EarthMoverDistanceWrapper { public static Signature histogramToSignature(Map<String, Double> histogram) { Signature signature = new Signature(); Feature[] features = new Feature[histogram.size()]; double[] weights = new double[histogram.size()]; List<String> orderedKeys = new ArrayList<>(histogram.keySet()); for (int i = 0; i < histogram.size(); i++) { features[i] = new Feature2D(i, histogram.get(orderedKeys.get(i))); weights[i] = 1.0; } signature.setFeatures(features); signature.setWeights(weights); signature.setNumberOfFeatures(features.length); return signature; } }