Fixed whitespace formatting.

This commit is contained in:
Donato Rimenti 2020-04-24 16:51:50 +02:00
parent 16ca52363c
commit 7d6e096d28
10 changed files with 184 additions and 177 deletions

View File

@ -128,19 +128,16 @@
<version>${awaitility.version}</version> <version>${awaitility.version}</version>
<scope>test</scope> <scope>test</scope>
</dependency> </dependency>
<dependency> <dependency>
<groupId>org.rosuda.REngine</groupId> <groupId>org.rosuda.REngine</groupId>
<artifactId>Rserve</artifactId> <artifactId>Rserve</artifactId>
<version>${rserve.version}</version> <version>${rserve.version}</version>
</dependency> </dependency>
<dependency> <dependency>
<groupId>com.github.jbytecode</groupId> <groupId>com.github.jbytecode</groupId>
<artifactId>RCaller</artifactId> <artifactId>RCaller</artifactId>
<version>${rcaller.version}</version> <version>${rcaller.version}</version>
</dependency> </dependency>
<dependency> <dependency>
<groupId>org.renjin</groupId> <groupId>org.renjin</groupId>
<artifactId>renjin-script-engine</artifactId> <artifactId>renjin-script-engine</artifactId>

View File

@ -17,12 +17,17 @@ public class FastRMean {
* @return the result of the R script * @return the result of the R script
*/ */
public double mean(int[] values) { public double mean(int[] values) {
Context polyglot = Context.newBuilder().allowAllAccess(true).build(); Context polyglot = Context.newBuilder()
.allowAllAccess(true)
.build();
String meanScriptContent = RUtils.getMeanScriptContent(); String meanScriptContent = RUtils.getMeanScriptContent();
polyglot.eval("R", meanScriptContent); polyglot.eval("R", meanScriptContent);
Value rBindings = polyglot.getBindings("R"); Value rBindings = polyglot.getBindings("R");
Value rInput = rBindings.getMember("c").execute(values); Value rInput = rBindings.getMember("c")
return rBindings.getMember("customMean").execute(rInput).asDouble(); .execute(values);
return rBindings.getMember("customMean")
.execute(rInput)
.asDouble();
} }
} }

View File

@ -30,7 +30,8 @@ public class RCallerMean {
code.addRCode("result <- customMean(input)"); code.addRCode("result <- customMean(input)");
RCaller caller = RCaller.create(code, RCallerOptions.create()); RCaller caller = RCaller.create(code, RCallerOptions.create());
caller.runAndReturnResult("result"); caller.runAndReturnResult("result");
return caller.getParser().getAsDoubleArray("result")[0]; return caller.getParser()
.getAsDoubleArray("result")[0];
} }
} }

View File

@ -23,8 +23,11 @@ public class RUtils {
* @throws URISyntaxException if any error occurs * @throws URISyntaxException if any error occurs
*/ */
static String getMeanScriptContent() throws IOException, URISyntaxException { static String getMeanScriptContent() throws IOException, URISyntaxException {
URI rScriptUri = RUtils.class.getClassLoader().getResource("script.R").toURI(); URI rScriptUri = RUtils.class.getClassLoader()
.getResource("script.R")
.toURI();
Path inputScript = Paths.get(rScriptUri); Path inputScript = Paths.get(rScriptUri);
return Files.lines(inputScript).collect(Collectors.joining()); return Files.lines(inputScript)
.collect(Collectors.joining());
} }
} }

View File

@ -23,7 +23,8 @@ public class RserveMean {
public double mean(int[] values) throws REngineException, REXPMismatchException { public double mean(int[] values) throws REngineException, REXPMismatchException {
RConnection c = new RConnection(); RConnection c = new RConnection();
c.assign("input", values); c.assign("input", values);
return c.eval("customMean(input)").asDouble(); return c.eval("customMean(input)")
.asDouble();
} }
} }