()
| 1299 | |
| 1300 | Random ran; |
| 1301 | double random() { |
| 1302 | double dseed = Double.NaN; |
| 1303 | boolean gaussian = false; |
| 1304 | if (interp.nextToken()=='(') { |
| 1305 | interp.getLeftParen(); |
| 1306 | if (isStringArg()) { |
| 1307 | String arg = getString().toLowerCase(Locale.US); |
| 1308 | if (arg.equals("seed")) { |
| 1309 | interp.getComma(); |
| 1310 | dseed = interp.getExpression(); |
| 1311 | long seed = (long)dseed; |
| 1312 | if (seed!=dseed) |
| 1313 | interp.error("Seed not integer"); |
| 1314 | ran = new Random(seed); |
| 1315 | ImageProcessor.setRandomSeed(seed); |
| 1316 | } else if (arg.equals("gaussian")) |
| 1317 | gaussian = true; |
| 1318 | else |
| 1319 | interp.error("'seed' or ''gaussian' expected"); |
| 1320 | } |
| 1321 | interp.getRightParen(); |
| 1322 | if (!Double.isNaN(dseed)) return Double.NaN; |
| 1323 | } |
| 1324 | ImageProcessor.setRandomSeed(Double.NaN); |
| 1325 | interp.getParens(); |
| 1326 | if (ran==null) |
| 1327 | ran = new Random(); |
| 1328 | if (gaussian) |
| 1329 | return ran.nextGaussian(); |
| 1330 | else |
| 1331 | return ran.nextDouble(); |
| 1332 | } |
| 1333 | |
| 1334 | double getResult(ResultsTable rt) { |
| 1335 | interp.getLeftParen(); |
no test coverage detected