aboutsummaryrefslogtreecommitdiffstats
path: root/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/metrics/MultiplexParticipationCoefficientMetric.java
diff options
context:
space:
mode:
authorLibravatar ArenBabikian <aren.babikian@mail.mcgill.ca>2019-08-28 05:56:34 -0400
committerLibravatar ArenBabikian <aren.babikian@mail.mcgill.ca>2019-08-28 05:56:34 -0400
commit6b70878a56052e1c254ba8c66485f217d22db3f8 (patch)
tree66088b97e5b6c0194f1a45f70f5f05315aba9e43 /Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/metrics/MultiplexParticipationCoefficientMetric.java
parentPre-realisticBranchCreation Commit (diff)
downloadVIATRA-Generator-6b70878a56052e1c254ba8c66485f217d22db3f8.tar.gz
VIATRA-Generator-6b70878a56052e1c254ba8c66485f217d22db3f8.tar.zst
VIATRA-Generator-6b70878a56052e1c254ba8c66485f217d22db3f8.zip
VAMPIRE: integrate local Vampire executeable #32
Diffstat (limited to 'Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/metrics/MultiplexParticipationCoefficientMetric.java')
-rw-r--r--Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/metrics/MultiplexParticipationCoefficientMetric.java59
1 files changed, 59 insertions, 0 deletions
diff --git a/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/metrics/MultiplexParticipationCoefficientMetric.java b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/metrics/MultiplexParticipationCoefficientMetric.java
new file mode 100644
index 00000000..660a5978
--- /dev/null
+++ b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/metrics/MultiplexParticipationCoefficientMetric.java
@@ -0,0 +1,59 @@
1package ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.metrics;
2
3import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.graph.GraphStatistic;
4import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.metrics.Metric;
5import java.text.DecimalFormat;
6import java.util.ArrayList;
7import java.util.List;
8import java.util.function.Consumer;
9import org.eclipse.emf.ecore.EObject;
10
11@SuppressWarnings("all")
12public class MultiplexParticipationCoefficientMetric extends Metric {
13 public final static String countName = "MPCCount";
14
15 public final static String valueName = "MPCValue";
16
17 private final DecimalFormat formatter = new DecimalFormat("#0.00000");
18
19 @Override
20 public String[][] evaluate(final GraphStatistic g) {
21 throw new Error("Unresolved compilation problems:"
22 + "\nInvalid number of arguments. The method newArrayOfSize(int) is not applicable for the arguments (int,int)");
23 }
24
25 @Override
26 public Object evaluateSamples(final GraphStatistic g) {
27 final ArrayList<Double> samples = new ArrayList<Double>();
28 final int typeCounts = g.getAllTypes().size();
29 final Consumer<EObject> _function = (EObject it) -> {
30 samples.add(Double.valueOf(this.calculateMPC(it, g, typeCounts)));
31 };
32 g.getAllNodes().forEach(_function);
33 return samples;
34 }
35
36 public double calculateMPC(final EObject n, final GraphStatistic g, final int typeCounts) {
37 int _outDegree = g.outDegree(n);
38 int _inDegree = g.inDegree(n);
39 final int edgeCounts = (_outDegree + _inDegree);
40 double coef = 0.0;
41 List<String> _allTypes = g.getAllTypes();
42 for (final String type : _allTypes) {
43 {
44 int _dimentionalDegree = g.dimentionalDegree(n, type);
45 final double degree = ((double) _dimentionalDegree);
46 double _coef = coef;
47 double _pow = Math.pow((degree / edgeCounts), 2);
48 coef = (_coef + _pow);
49 }
50 }
51 coef = (1 - coef);
52 coef = ((coef * typeCounts) / (typeCounts - 1));
53 boolean _isNaN = Double.isNaN(coef);
54 if (_isNaN) {
55 coef = 0;
56 }
57 return Double.parseDouble(this.formatter.format(coef));
58 }
59}