示例#1
0
 /**
  * Get this pixel's computed spin signal at the given time. The formula is: <CENTER>
  * <I>S</I>(<I>t</I>)&emsp;=&emsp;<B>&Sigma;</B><SUB><I>i</I></SUB>&emsp;<I>&rho;</I><SUB><I>i</I></SUB>&nbsp;[1&nbsp;&minus;&nbsp;2&nbsp;exp(&minus;<I>R</I>1<SUB><I>i</I></SUB>&nbsp;<I>t</I>)]
  * </CENTER> If the analysis could not find a solution for this pixel, 0 is returned.
  *
  * @param t Time.
  * @return Spin signal, <I>S</I>(<I>t</I>).
  */
 public double S(double t) {
   if (rho == null) return 0.0;
   double sum = 0.0;
   for (int i = 0; i < rho.length; ++i) {
     sum += SpinSignal.S(rho[i], R1[i], t);
   }
   return sum;
 }
示例#2
0
 /**
  * Get a series containing this pixel's computed spin signal for the given time series. If the
  * analysis could not find a solution for this pixel, null is returned.
  *
  * @param t_series Series of times, <I>t</I><SUB><I>j</I></SUB>.
  * @return Series of spin signals, <I>S</I>(<I>t</I><SUB><I>j</I></SUB>), or null.
  */
 public Series S_series(Series t_series) {
   if (rho == null) return null;
   final int M = t_series.length();
   final double[] S_computed = new double[M];
   for (int j = 0; j < M; ++j) {
     double t_j = t_series.x(j);
     double sum = 0.0;
     for (int i = 0; i < rho.length; ++i) {
       sum += SpinSignal.S(rho[i], R1[i], t_j);
     }
     S_computed[j] = sum;
   }
   return new ArraySeries(S_computed);
 }