public static OperationSelector weighted()

in harry-core/src/harry/model/OpSelectors.java [842:870]


        public static OperationSelector weighted(long[] weights, OperationKind... operationKinds)
        {
            assert weights.length == operationKinds.length;

            Map<OperationKind, Integer> partitionLevel = new EnumMap<OperationKind, Integer>(OperationKind.class);
            Map<OperationKind, Integer> rowLevel = new EnumMap<OperationKind, Integer>(OperationKind.class);

            int partitionLevelSum = 0;
            int rowLevelSum = 0;
            for (int i = 0; i < weights.length; i++)
            {
                int v = (int) (weights[i] >> 32);
                if (operationKinds[i].partititonLevel)
                {
                    partitionLevel.put(operationKinds[i], v);
                    partitionLevelSum += v;
                }
                else
                {
                    rowLevel.put(operationKinds[i], v);
                    rowLevelSum += v;
                }
            }
            int sum = (partitionLevelSum + rowLevelSum);

            return new OperationSelector(Surjections.weighted(normalize(partitionLevel)),
                                         Surjections.weighted(normalize(rowLevel)),
                                         (partitionLevelSum * 1.0) / sum);
        }