Examples of MatrixNf


Examples of org.matheusdev.util.matrix.MatrixNf

  public SimplexNoiseN(final int octaves, final int smoothness, final int smoothnessincrease, final int importanceincrease, final Random rand, final FloatInterpolation interpolator, final int... dimensions) {
    this(layersFromOctaves(octaves, smoothness, smoothnessincrease, rand, interpolator, dimensions), importancesFromOctaves(octaves, importanceincrease), rand, true, dimensions);
  }

  public SimplexNoiseN(SimplexNoiseLayerN[] layers, float[] importances, final Random rand, boolean threaded, final int... dimensions) {
    values = new MatrixNf(dimensions);

    if (threaded) {
      ExecutorService executor = Executors.newFixedThreadPool(Runtime.getRuntime().availableProcessors());
      for (int i = 0; i < layers.length; i++) {
        final SimplexNoiseLayerN layerToGen = layers[i];
        executor.execute(new Runnable() {
          @Override
          public void run() {
            layerToGen.gen();
          }
        });
      }

      executor.shutdown();
      try {
        executor.awaitTermination(30, TimeUnit.MINUTES);
      } catch (InterruptedException e) {
        e.printStackTrace();
      }
    }

    for (int i = 1; i < layers.length; i++) {
      final float importance = importances[i];
      if (!threaded) {
        layers[i].gen();
      }
      final MatrixNf vals = layers[i].get();

      final int[] offsets = new int[vals.getDimensions().length];
      final int[] newPos = new int[offsets.length];

      for (int j = 0; j < offsets.length; j++) {
        offsets[j] = Math.abs(rand.nextInt() % 174174);
      }

      vals.each(new PosIterationCallback() {
        @Override
        public void call(int[] pos) {
          for (int i = 0; i < newPos.length; i++) {
            newPos[i] = (pos[i] + offsets[i]) % vals.getDimensions()[i];
          }
          values.set(values.get(pos) + vals.get(newPos) * importance, pos);
        }
      });

      for (int j = 0; j < vals.values.length; j++) {
        values.values[j] += vals.values[j] * importance;
 
View Full Code Here

Examples of org.matheusdev.util.matrix.MatrixNf

  protected final int density;
  protected final Random rand;
  protected final FloatInterpolation interpolator;

  public SimplexNoiseLayerN(final int density, final Random rand, final FloatInterpolation interpolator, final int... dimensions) {
    values = new MatrixNf(dimensions);
    this.density = density;
    this.rand = rand;
    this.interpolator = interpolator;
  }
View Full Code Here
TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.