Different kernels and arguments can be passed to pfocal. A set of functions is available to provide all possible values for these arguments.

pfocal_info_transform()

pfocal_info_reduce()

pfocal_info_nan_policy()

pfocal_info_mean_divisor()

pfocal_info_variance()

Value

An object of type matrix: first column shows the possible argument value, second column is used internally and third column describe the argument.

Examples


# Retrieve info on different arguments

pfocal_info_transform()
#>      [,1]       [,2]
#> [1,] "MULTIPLY" "0" 
#> [2,] "ADD"      "1" 
#> [3,] "R_EXP"    "2" 
#> [4,] "L_EXP"    "3" 
#>      [,3]                                                                   
#> [1,] "For data value 'd' and kernal value 'k', intermediate_value = (d * k)"
#> [2,] "For data value 'd' and kernal value 'k', intermediate_value = (d + k)"
#> [3,] "For data value 'd' and kernal value 'k', intermediate_value = (d ^ k)"
#> [4,] "For data value 'd' and kernal value 'k', intermediate_value = (k ^ d)"
pfocal_info_reduce()
#>      [,1]          [,2]
#> [1,] "SUM"         "0" 
#> [2,] "ABS_SUM"     "1" 
#> [3,] "PRODUCT"     "2" 
#> [4,] "ABS_PRODUCT" "3" 
#> [5,] "MIN"         "4" 
#> [6,] "MAX"         "5" 
#>      [,3]                                                                                                                          
#> [1,] "Accumulator starts at 0. For each intermediate value, in no particular order, acc = ( acc + iv )"                            
#> [2,] "Accumulator starts at 0. For each intermediate value, in no particular order, acc = ( acc + abs(iv) )"                       
#> [3,] "Accumulator starts at 1. For each intermediate value, in no particular order, acc = ( acc * iv )"                            
#> [4,] "Accumulator starts at 1. For each intermediate value, in no particular order, acc = ( acc * abs(iv) )"                       
#> [5,] "Accumulator starts at the highest possible value. For each intermediate value, in no particular order, acc = min( acc , iv )"
#> [6,] "Accumulator starts at the lowest possible value. For each intermediate value, in no particular order, acc = max( acc , iv )" 
pfocal_info_nan_policy()
#>      [,1]    [,2]
#> [1,] "NA"    "0" 
#> [2,] "FALSE" "1" 
#> [3,] "TRUE"  "2" 
#>      [,3]                                                                                                                            
#> [1,] "Fastest. Assume that there will be no NAN values. Will not crash if it is given a NAN, but makes no guarantee other than that."
#> [2,] "Will propagate NANs aggressively."                                                                                             
#> [3,] "Will discard NAN values early."                                                                                                
pfocal_info_mean_divisor()
#>       [,1]                    [,2]
#>  [1,] "ONE"                   "0" 
#>  [2,] "KERNEL_SIZE"           "1" 
#>  [3,] "KERNEL_COUNT"          "2" 
#>  [4,] "KERNEL_SUM"            "3" 
#>  [5,] "KERNEL_ABS_SUM"        "4" 
#>  [6,] "KERNEL_PROD"           "5" 
#>  [7,] "KERNEL_ABS_PROD"       "6" 
#>  [8,] "DYNAMIC_COUNT"         "7" 
#>  [9,] "DYNAMIC_SUM"           "8" 
#> [10,] "DYNAMIC_ABS_SUM"       "9" 
#> [11,] "DYNAMIC_PROD"          "10"
#> [12,] "DYNAMIC_ABS_PROD"      "11"
#> [13,] "DYNAMIC_DATA_SUM"      "12"
#> [14,] "DYNAMIC_DATA_ABS_SUM"  "13"
#> [15,] "DYNAMIC_DATA_PROD"     "14"
#> [16,] "DYNAMIC_DATA_ABS_PROD" "15"
#>       [,3]                                                                                                                            
#>  [1,] "Does not divide the final value by anything"                                                                                   
#>  [2,] "Divide the final value at each point by nrow(k)*ncol(k)"                                                                       
#>  [3,] "Divide the final value at each point by sum(+!is.na(k))"                                                                       
#>  [4,] "Divide the final value at each point by sum(k[!is.na(k)])"                                                                     
#>  [5,] "Divide the final value at each point by sum(abs(k[!is.na(k)]))"                                                                
#>  [6,] "Divide the final value at each point by prod(k[!is.na(k)])"                                                                    
#>  [7,] "Divide the final value at each point by prod(abs(k[!is.na(k)]))"                                                               
#>  [8,] "Divide the final value at each point by sum(!is.na( intermediate_data )), recalculated at every point"                         
#>  [9,] "Divide the final value at each point by sum(intermediate_data[!is.na( intermediate_data )]), recalculated at every point"      
#> [10,] "Divide the final value at each point by sum(abs(intermediate_data[!is.na( intermediate_data )])), recalculated at every point" 
#> [11,] "Divide the final value at each point by prod(intermediate_data[!is.na( intermediate_data )]), recalculated at every point"     
#> [12,] "Divide the final value at each point by prod(abs(intermediate_data[!is.na( intermediate_data )])), recalculated at every point"
#> [13,] "Divide the final value at each point by sum(local_data[!is.na( intermediate_data )]), recalculated at every point"             
#> [14,] "Divide the final value at each point by sum(abs(local_data[!is.na( intermediate_data )])), recalculated at every point"        
#> [15,] "Divide the final value at each point by prod(local_data[!is.na( intermediate_data )]), recalculated at every point"            
#> [16,] "Divide the final value at each point by prod(abs(local_data[!is.na( intermediate_data )])), recalculated at every point"       
pfocal_info_variance()
#>      [,1]    [,2]
#> [1,] "FALSE" "0" 
#> [2,] "TRUE"  "1" 
#>      [,3]                                                                                                                                                                                                                                                                                                                                                                               
#> [1,] "Returns the value at each point"                                                                                                                                                                                                                                                                                                                                                  
#> [2,] "Returns something like the variance of the intermediate values at each point. First calculate the value as normal. Then find the 'mean' by dividing the value by the mean_divisor. Then for each intermidiate value, calculate the square of the difference and 'reduce' them using the reduce_function. (ie: sum them if SUM, multiply them if PROD, take their max if MAX etc.)"