View Javadoc
1   /*
2    * Licensed to the Apache Software Foundation (ASF) under one or more
3    * contributor license agreements.  See the NOTICE file distributed with
4    * this work for additional information regarding copyright ownership.
5    * The ASF licenses this file to You under the Apache License, Version 2.0
6    * (the "License"); you may not use this file except in compliance with
7    * the License.  You may obtain a copy of the License at
8    *
9    *      https://www.apache.org/licenses/LICENSE-2.0
10   *
11   * Unless required by applicable law or agreed to in writing, software
12   * distributed under the License is distributed on an "AS IS" BASIS,
13   * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14   * See the License for the specific language governing permissions and
15   * limitations under the License.
16   */
17  
18  /*
19   * This is not the original file distributed by the Apache Software Foundation
20   * It has been modified by the Hipparchus project
21   */
22  
23  package org.hipparchus.stat.ranking;
24  
25  /**
26   * Strategies for handling NaN values in rank transformations.
27   * <ul>
28   * <li>MINIMAL - NaNs are treated as minimal in the ordering, equivalent to
29   * (that is, tied with) <code>Double.NEGATIVE_INFINITY</code>.</li>
30   * <li>MAXIMAL - NaNs are treated as maximal in the ordering, equivalent to
31   * <code>Double.POSITIVE_INFINITY</code></li>
32   * <li>REMOVED - NaNs are removed before the rank transform is applied</li>
33   * <li>FIXED - NaNs are left "in place," that is the rank transformation is
34   * applied to the other elements in the input array, but the NaN elements
35   * are returned unchanged.</li>
36   * <li>FAILED - If any NaN is encountered in the input array, an appropriate
37   * exception is thrown</li>
38   * </ul>
39   *
40   */
41  public enum NaNStrategy {
42  
43      /** NaNs are considered minimal in the ordering */
44      MINIMAL,
45  
46      /** NaNs are considered maximal in the ordering */
47      MAXIMAL,
48  
49      /** NaNs are removed before computing ranks */
50      REMOVED,
51  
52      /** NaNs are left in place */
53      FIXED,
54  
55      /** NaNs result in an exception */
56      FAILED
57  }