content: /*
   * Copyright (C) 2014 - Martin Berger
   * CONRAD is developed as an Open Source project under the GNU General Public License (GPL).
  */
  package edu.stanford.rsl.conrad.data.generic.complex;
  
  
  import edu.stanford.rsl.conrad.data.generic.GenericGridOperator;
  import edu.stanford.rsl.conrad.data.generic.datatypes.Complex;
  import edu.stanford.rsl.conrad.data.generic.iterators.GenericPointwiseIteratorND;
  
  public class ComplexGridOperator extends GenericGridOperator<Complex> implements ComplexGridOperatorInterface{
  	
  	public void conj(final ComplexGrid grid){
  		GenericPointwiseIteratorND<Complex> it = new GenericPointwiseIteratorND<Complex>(grid);
  		while(it.hasNext()){	
  			it.setNext(new Complex(it.get().getReal(), -it.get().getImag()));
  		}
  	}
  	
  	public void abs(final ComplexGrid grid){
  		GenericPointwiseIteratorND<Complex> it = new GenericPointwiseIteratorND<Complex>(grid);
  		while(it.hasNext()){	
  		    it.setNext(new Complex(it.get().getMagn(), 0));
  		}
  	}
  	
  	protected static ComplexGridOperator op = new ComplexGridOperator();
  	
  	public static ComplexGridOperator getInstance() {
  		return op;
  	}
  }
  