Skip to content
Snippets Groups Projects
Commit 1dd9d5ca authored by Stefano Zibetti's avatar Stefano Zibetti
Browse files

Upload New File

parent fd1e7301
No related branches found
No related tags found
No related merge requests found
#include <string.h>
#include <stdio.h>
#include <unistd.h>
#include <ctype.h>
#include <math.h>
#include "fitsio.h"
#define PI 3.1415926535
#define MAXRING 27 /* maximum radius for median smoothing */
#define SNMIN 20. /* minimum S/N in the pixel */
#define SLCUT 0 /* specifies which levels must be excluded from median
computations. 0: no exclusions; 1: exclude first level (1pix scale) from all
others; N<0: exclude up to the (-N)th level below current. */
#define MSKMAX 100 /* mask value for pixel not set because of S/N too low */
#define NULVAL -1e10 /* null value for pixel that do not reach minimum S/N */
#define DELTA_SL_RMS 2 /* use a radius DELTA_SL_RMS pixels larger than
current smoothing level to comput local
rms*/
float select_FR(float arr[], int l_par, int r_par, int k);
int medsmooth_local (long int x, long int y, float **image, int **mask, float rms, float **outimage);
int medsmooth_mask (long int x, long int y, float **image, int **mask, float rms, float **outimage);
int medsmooth_bkg (long int x, long int y, float **image, int **mask, float rms, float **outimage);
int medsmooth_poisson (long int x, long int y, float **image, int **mask, float rms, float **outimage);
int meansmooth_local (long int x, long int y, float **image, int **mask, float rms, float **outimage);
int meansmooth_mask (long int x, long int y, float **image, int **mask, float rms, float **outimage);
int meansmooth_bkg (long int x, long int y, float **image, int **mask, float rms, float **outimage);
int meansmooth_poisson (long int x, long int y, float **image, int **mask, float rms, float **outimage);
int (*fsmooth) (long int x, long int y, float **image, int **mask, float rms, float **outimage);
long naxes1[2];
int maskflag=0;
int slconst=SLCUT;
int slcut_relative(int sl);
int slcut_absolute(int sl);
int (*slcut) (int sl);
float sn=SNMIN;
int maxsmooth=MAXRING;
float inv_e_gain=-1.0; /* 1./effective gain for poisson mode */
static int kernel_pix[][2]={ \
{ 0, 0},{ -1, 0},{ 0, 1},{ 0, -1},{ 1, 1},{ 1, -1},{ 1, 0},{ -1, -1},{ -1, 1},{ -1, -2},\
{ 0, -2},{ -2, 1},{ 1, -2},{ -2, 0},{ 2, 1},{ 2, -1},{ 0, 2},{ 2, 0},{ -2, -1},{ -1, 2},\
{ 1, 2},{ 3, 0},{ 0, 3},{ -1, 3},{ 0, -3},{ 3, 1},{ 2, 2},{ -1, -3},{ -3, -1},{ -3, 1},\
{ -2, -2},{ -3, 0},{ 2, -2},{ 3, -1},{ 1, -3},{ -2, 2},{ 1, 3},{ -4, 1},{ 4, -2},{ 3, -2},\
{ -4, -2},{ -3, -2},{ 4, 0},{ -4, 0},{ -4, 2},{ -3, 2},{ 4, 1},{ 3, 2},{ 4, 2},{ -3, 3},\
{ -2, 3},{ 2, 3},{ 3, 3},{ -2, -4},{ -1, -4},{ 0, -4},{ 1, -4},{ 2, -4},{ 4, -1},{ -2, 4},\
{ -1, 4},{ 0, 4},{ -3, -3},{ -2, -3},{ 1, 4},{ 2, 4},{ -4, -1},{ 2, -3},{ 3, -3},{ 4, -3},\
{ 3, -4},{ 5, 0},{ -5, -2},{ -3, -4},{ 4, 3},{ -5, -1},{ -2, 5},{ 5, 2},{ 5, 1},{ -3, 4},\
{ 5, -1},{ -2, -5},{ -1, -5},{ 0, -5},{ 1, -5},{ 2, -5},{ -1, 5},{ 0, 5},{ 5, -2},{ -5, 2},\
{ -5, 0},{ -4, -3},{ 1, 5},{ -4, 3},{ 2, 5},{ -5, 1},{ 3, 4},{ 2, -6},{ -4, -5},{ -3, -5},\
{ 3, -5},{ 4, -5},{ 1, -6},{ 6, 2},{ -6, 0},{ -5, 3},{ -4, 5},{ -3, 5},{ -1, -6},{ 0, -6},\
{ -2, -6},{ 0, 6},{ -5, -4},{ -4, -4},{ -1, 6},{ -2, 6},{ 4, -4},{ 5, 3},{ 6, -1},{ 5, -3},\
{ -6, 2},{ 6, 1},{ 6, 0},{ -5, 4},{ 5, -4},{ 2, 6},{ -4, 4},{ -6, 1},{ 1, 6},{ -5, -3},\
{ 3, 5},{ 4, 5},{ 4, 4},{ 5, 4},{ -6, -2},{ 6, -2},{ -6, -1},{ -3, -6},{ 1, -7},{ 7, 1},\
{ -7, 1},{ 2, -7},{ 7, 0},{ -4, -6},{ 3, -6},{ 4, -6},{ -5, -5},{ 5, -5},{ -6, -4},{ 6, -4},\
{ -6, -3},{ 6, -3},{ 2, 7},{ 1, 7},{ 0, 7},{ -1, 7},{ -2, 7},{ -7, -2},{ 4, 6},{ 3, 6},\
{ -3, 6},{ -4, 6},{ 7, -2},{ 5, 5},{ -5, 5},{ -7, -1},{ 6, 4},{ -6, 4},{ 6, 3},{ -6, 3},\
{ -2, -7},{ 7, -1},{ -7, 0},{ -1, -7},{ 7, 2},{ -7, 2},{ 0, -7},{ -3, 7},{ -8, -1},{ 4, -7},\
{ 7, -4},{ -2, -8},{ -8, 2},{ -7, 4},{ 1, -8},{ -7, 3},{ -4, -7},{ -2, 8},{ 3, -7},{ -1, 8},\
{ 8, -1},{ 0, 8},{ 1, 8},{ -8, 0},{ 8, 0},{ 4, 7},{ -6, 5},{ 7, 4},{ 8, 1},{ 8, 2},\
{ -8, 1},{ 6, -5},{ -6, -5},{ -3, -7},{ 2, 8},{ 8, -2},{ 6, 6},{ 5, 6},{ 6, -6},{ 5, -6},\
{ 3, 7},{ 7, 3},{ -8, -2},{ 7, -3},{ 2, -8},{ -5, -6},{ -6, -6},{ -5, 6},{ -6, 6},{ 0, -8},\
{ -1, -8},{ -7, -4},{ -7, -3},{ -4, 7},{ 6, 5},{ -3, -9},{ 9, 1},{ -8, 3},{ -9, 3},{ 9, 0},\
{ 9, -1},{ -9, 0},{ 8, -5},{ 7, -5},{ -9, 1},{ 9, 2},{ -7, -5},{ -8, -5},{ 7, -6},{ 3, -8},\
{ -9, -2},{ -7, 6},{ 4, -8},{ -6, 7},{ -5, 7},{ 7, 6},{ -7, -6},{ 9, -2},{ 5, -8},{ 8, 5},\
{ 7, 5},{ 6, -7},{ 5, 7},{ 6, 7},{ 9, -3},{ 8, -3},{ -5, 8},{ -4, 8},{ 5, -7},{ -7, 5},\
{ -8, 5},{ -6, -7},{ -9, -1},{ -3, 8},{ -5, -7},{ 8, 4},{ 3, 8},{ 4, 8},{ 5, 8},{ -8, -3},\
{ -9, -3},{ 8, -4},{ -8, 4},{ -3, -8},{ -3, 9},{ -2, 9},{ -1, 9},{ 0, 9},{ 1, 9},{ 2, 9},\
{ 3, 9},{ 9, 3},{ 8, 3},{ -9, 2},{ -4, -8},{ -5, -8},{ -8, -4},{ 3, -9},{ 2, -9},{ 1, -9},\
{ 0, -9},{ -1, -9},{ -2, -9},{ -4, -9},{ 3, 10},{ 2, 10},{ 1, 10},{ 0, 10},{ -1, 10},{ -2, 10},\
{ -3, 10},{ 5, 9},{ 4, 9},{ -4, 9},{ -5, 9},{ 6, 8},{ -6, 8},{ 7, 7},{ -7, 7},{ 8, 6},\
{ -8, 6},{ 9, 5},{ -9, 5},{ 9, 4},{ -9, 4},{ 10, 3},{-10, 3},{ 10, 2},{-10, 2},{ 10, 1},\
{-10, 1},{ 10, 0},{-10, 0},{ 10, -1},{-10, -1},{ 10, -2},{-10, -2},{ 10, -3},{-10, -3},{ 9, -4},\
{ -9, -4},{ 9, -5},{ -9, -5},{ 8, -6},{ -8, -6},{ 7, -7},{ -7, -7},{ 6, -8},{ -6, -8},{ 5, -9},\
{ 4, -9},{ -5, -9},{ 3,-10},{ 2,-10},{ 1,-10},{ 0,-10},{ -1,-10},{ -2,-10},{ -3,-10},{ 5,-10},\
{ 2, 11},{ 3, 11},{ -9, 6},{ -7, -9},{ 9, 6},{ -9, -6},{ 11, 1},{-11, 1},{ -6, -9},{ 6, -9},\
{-10, 4},{ 9, -7},{ 8, -7},{ -9, 7},{ -8, 7},{ 10, 4},{ 7, -9},{ -8, -8},{-11, -2},{ -8, -7},\
{ -9, -7},{ -7, -8},{ 7, -8},{ 8, -8},{ 11, -3},{ 8, 7},{ 9, 7},{ 11, 0},{ -8, 8},{ -7, 8},\
{ 7, 8},{ 8, 8},{-10, 5},{-11, -3},{ -3,-11},{ -2,-11},{-11, -1},{ 10, -4},{ -1,-11},{ -7, 9},\
{ -6, 9},{ 6, 9},{ 7, 9},{-11, 3},{ 11, 2},{ 0,-11},{ 1,-11},{-11, 2},{ 11, 3},{ -5, 10},\
{ -4, 10},{ 2,-11},{-10, -4},{ 3,-11},{ 11, -2},{ 10, -5},{ 4, 10},{ 5, 10},{ 10, 5},{ -5,-10},\
{ 11, -1},{ -3, 11},{ -2, 11},{ -1, 11},{ 0, 11},{ -4,-10},{-10, -5},{ 4,-10},{ 9, -6},{-11, 0},\
{ 1, 11},{ 1,-12},{-12, 0},{ 10, -6},{-12, 3},{ -9, 8},{ 5,-11},{-12, 2},{ -5, 11},{ 4, 11},\
{ 5, 11},{-10, 6},{ 6, 10},{ 6,-10},{ 7,-10},{ -8, -9},{ 9, 8},{-11, 5},{ 10, 6},{ -2,-12},\
{ -3, 12},{-11, 4},{ 2,-12},{-10, -6},{ 3,-12},{ -5,-11},{ -7, 10},{ -4,-11},{ -6, 10},{ 10, -7},\
{-12, -3},{ -3,-12},{-10, 7},{ -2, 12},{ -1, 12},{ 0, 12},{ 1, 12},{ 2, 12},{ 3, 12},{ 7, 10},\
{ 12, 3},{ -4, 11},{ 11, -4},{ 8, -9},{ -9, -8},{ -7,-10},{-11, -4},{-12, -1},{ -8, 9},{-10, -7},\
{-12, -2},{ 12, -2},{ -6,-10},{ 4,-11},{ 11, 4},{ 9, -8},{-12, 1},{ 0,-12},{ 12, -1},{ 12, -3},\
{-11, -5},{ -1,-12},{ 8, 9},{ 11, -5},{ 10, 7},{ 12, 2},{ 11, 5},{ 12, 0},{ 12, 1},{ -9, -9},\
{-13, 3},{ 13, 3},{-12, 4},{ 12, 4},{-12, 5},{-13, -1},{ 13, -2},{ -4,-12},{ 12, 5},{-12, 6},\
{-11, 6},{ 11, 6},{ 12, 6},{-11, 7},{ -5,-12},{-13, -2},{ 13, -3},{ -6,-12},{ 11, 7},{-10, 8},\
{ 10, 8},{-10, 9},{-13, -3},{ 12, -4},{ -9, 9},{ 9, 9},{ 10, 9},{ -9, 10},{ -8, 10},{-12, -4},\
{ 12, -5},{ 8, 10},{ 9, 10},{ -7, 11},{ -6, 11},{-12, -5},{ 12, -6},{ 11, -6},{ 3,-13},{ 6, 11},\
{ 7, 11},{ -6, 12},{ -5, 12},{ -4, 12},{ 2,-13},{-11, -6},{-12, -6},{ 11, -7},{ 1,-13},{ 4, 12},\
{ 5, 12},{ 6, 12},{ 0,-13},{-11, -7},{ 10, -8},{ -1,-13},{ -3, 13},{ -2, 13},{ -1, 13},{ 0, 13},\
{ 1, 13},{ 2, 13},{ 3, 13},{ -2,-13},{-10, -8},{ 10, -9},{ 9, -9},{ -3,-13},{ 13, -1},{-10, -9},\
{ 9,-10},{ 8,-10},{ -8,-10},{ -9,-10},{ 7,-11},{ 6,-11},{ -6,-11},{ -7,-11},{ 6,-12},{ 5,-12},\
{ 4,-12},{ 13, 0},{-13, 1},{ 13, 1},{-13, 2},{ 13, 2},{-13, 0},{ -1, 14},{ 1, 14},{ 2, 14},\
{ 3, 14},{ -3,-14},{ -5,-13},{-13, -6},{ -7, 12},{ -8, 12},{ 13, 6},{-13, 6},{-11, -9},{ 10,-10},\
{ 14, 3},{ 14, 1},{ 9, 11},{ 8, 11},{ 13, -6},{-13, -5},{ -6,-13},{ 3,-14},{ 2,-14},{ 1,-14},\
{ 0,-14},{ -1,-14},{ -2,-14},{ 4,-13},{ -8, 11},{ -9, 11},{ 10, 10},{-14, 2},{ 14, -1},{-10,-10},\
{ 9,-11},{ 8,-11},{ 13, 5},{ 14, -2},{ 5,-13},{ 13, -5},{-13, -4},{ 6,-13},{-10, 10},{ 11, 9},\
{ -8,-12},{ 13, -4},{-14, -3},{ -7,-12},{-11, 9},{-14, -1},{-13, 5},{ -8,-11},{ -9,-11},{ 8,-12},\
{ 7,-12},{-14, 0},{ 14, 2},{ 11, -8},{ 12, -8},{-14, 3},{ -4, 13},{ 12, 8},{ 11, 8},{-11, 8},\
{-12, 8},{ 12, 7},{ 14, -3},{ 13, 4},{ 4, 13},{ 5, 13},{ 6, 13},{ 14, 0},{-12, -7},{ -5, 13},\
{ -6, 13},{-14, 1},{-11, -8},{-12, -8},{ 11, -9},{-13, 4},{-14, -2},{ 8, 12},{ 7, 12},{ 12, -7},\
{-12, 7},{ -4,-13},{ -3, 14},{ -2, 14},{ 0, 14},{ 4, 14},{ -3,-15},{ -2,-15},{ -1,-15},{ 0,-15},\
{ 1,-15},{ 2,-15},{ 3,-15},{ -6,-14},{ -5,-14},{ -4,-14},{ 4,-14},{ 5,-14},{ 6,-14},{ -8,-13},\
{ -7,-13},{ 7,-13},{ 8,-13},{ -9,-12},{ 9,-12},{-10,-11},{ 10,-11},{-11,-10},{ 11,-10},{-12, -9},\
{ 12, -9},{-13, -8},{ 13, -8},{-13, -7},{ 13, -7},{-14, -6},{ 14, -6},{-14, -5},{ 14, -5},{-14, -4},\
{ 14, -4},{-15, -3},{ 15, -3},{-15, -2},{ 15, -2},{-15, -1},{ 15, -1},{-15, 0},{ 15, 0},{-15, 1},\
{ 15, 1},{-15, 2},{ 15, 2},{-15, 3},{ 15, 3},{-14, 4},{ 14, 4},{-14, 5},{ 14, 5},{-14, 6},\
{ 14, 6},{-13, 7},{ 13, 7},{-13, 8},{ 13, 8},{-12, 9},{ 12, 9},{-11, 10},{ 11, 10},{-10, 11},\
{ 10, 11},{ -9, 12},{ 9, 12},{ -8, 13},{ -7, 13},{ 7, 13},{ 8, 13},{ -6, 14},{ -5, 14},{ -4, 14},\
{ 5, 14},{ 6, 14},{ -3, 15},{ -2, 15},{ -1, 15},{ 0, 15},{ 1, 15},{ 2, 15},{ 3, 15},{ -3,-16},\
{ 10,-12},{ 11,-12},{-12, 10},{-14, 8},{ 15, -4},{ 7,-14},{ -4, 16},{ 13, 9},{ 12, 10},{ 13, 10},\
{ 16, -2},{ -3, 16},{-16, 0},{ 9,-13},{ 16, -3},{-15, 6},{ -2, 16},{ -1, 16},{ 0, 16},{ 1, 16},\
{ 10, 13},{ 9, 13},{ 2, 16},{ 3, 16},{ -9,-13},{ 6,-15},{ -6,-15},{ 14, 7},{-13, 10},{-16, -2},\
{-15, -6},{-10,-13},{ -9, 13},{-12,-11},{-11,-11},{-10, 13},{ -4,-16},{-15, -5},{ -7,-14},{ 7, 14},\
{-14, -8},{ 16, -1},{ 4, 16},{ 8, 14},{ 13,-10},{ 10,-13},{ 14, 8},{ -5,-15},{ -4,-15},{-16, 3},\
{-15, 5},{ 15, -6},{ 12,-10},{ 4,-15},{ 14, -7},{ 16, 4},{ 11,-11},{ 12,-11},{ 11, 11},{ -4, 15},\
{ 12, 11},{-16, 1},{ 11, 12},{-13, -9},{ 10, 12},{ 15, 4},{ -8,-14},{-16, -3},{-14, -7},{ 5,-15},\
{ 4, 15},{ -5, 15},{ 16, 0},{-10,-12},{-10, 12},{-11, 12},{-11,-12},{ 13, -9},{ 8,-14},{ -8, 14},\
{ 15, -5},{-16, 2},{ -7, 14},{ 15, 6},{ 16, 1},{ -6, 15},{ 16, 3},{-13,-10},{-12,-10},{-16, -1},\
{ 5, 15},{ 16, -4},{ 6, 15},{ 15, 5},{-14, 7},{-16, 4},{-15, 4},{-15, -4},{ 14, -8},{ 4,-16},\
{ 3,-16},{ 2,-16},{ 1,-16},{ 0,-16},{ -1,-16},{ -2,-16},{ 16, 2},{-12, 11},{-11, 11},{-16, -4},\
{-13, 9},{-16, 5},{ 14,-10},{-17, -4},{ 3, 17},{ 4, 17},{-10,-14},{ 7,-15},{ 8,-15},{ 9,-15},\
{ 17, 1},{ 13, 11},{-17, 0},{-14, 9},{-15, -8},{ -9,-14},{-15, 8},{ 9, 15},{-15, -9},{-14, -9},\
{-17, 2},{ 15, -9},{ 4,-17},{ 3,-17},{ 2,-17},{ 1,-17},{ 0,-17},{ -1,-17},{ -2,-17},{ -3,-17},\
{ -4,-17},{ 17, -3},{-10, 14},{ 16, -5},{ 14, -9},{ 16, 5},{ 15, 7},{ 17, -2},{-16, 6},{ 16, 7},\
{ 11, 13},{-17, -2},{-16, -5},{-11, 13},{ -7, 16},{ 17, 4},{ 16, -6},{ -6, 16},{-17, 4},{-17, -3},\
{ 10, 14},{ 9, 14},{ -5, 16},{ 17, 3},{ 17, 0},{ 10,-14},{-15, 7},{ 16, 6},{ 7,-16},{ 6,-16},\
{ 5,-16},{ 12,-12},{ -7, 15},{ -8, 15},{ 11,-13},{ 14, 10},{ -7,-15},{ -8,-15},{ -9,-15},{ -9, 15},\
{ 14, 9},{ 17, -4},{ 15, 9},{ 12, 12},{-14, 10},{-13,-11},{-16, -6},{ -5,-16},{ -6,-16},{ -7,-16},\
{-11,-13},{ 5, 16},{ 6, 16},{ 7, 16},{-16, 7},{-17, 3},{-17, -1},{ 16, -7},{ 15, -7},{ 13,-11},\
{-17, 1},{ 15, 8},{ 17, -1},{-13, 11},{-15, -7},{-16, -7},{ -9, 14},{ 17, 2},{-12, 12},{-15, 9},\
{-12,-12},{-14,-10},{ 15, -8},{ 7, 15},{ 8, 15},{ -4, 17},{ -3, 17},{ -2, 17},{ -1, 17},{ 0, 17},\
{ 1, 17},{ 9,-14},{ 2, 17},{-16, 9},{-12, 14},{ 11,-14},{-18, 4},{-11, 14},{-18, -3},{-10, 15},\
{-18, -1},{ 12,-14},{-17, 7},{ 8,-16},{ 18, -3},{ 10,-15},{-17, 6},{ 18, -2},{-18, -2},{ 12, 14},\
{ 11, 14},{ 18, 3},{ 17, 6},{ 13,-12},{ 14,-12},{-10,-15},{ 15, 10},{-14,-11},{ -8,-16},{ -9,-16},\
{ 16, 8},{-18, 3},{ 14,-11},{-14, 11},{-14,-12},{ 16, 9},{ 4, 18},{ 18, 2},{-15,-10},{ 3, 18},\
{ 2, 18},{ 1, 18},{ 0, 18},{ -1, 18},{ -2, 18},{ -3, 18},{ -4, 18},{-17, 5},{ 15,-10},{ 14, 11},\
{-16, -9},{ 7,-17},{ 6,-17},{ 5,-17},{ -5,-17},{ -6,-17},{ -7,-17},{ 16, -9},{-18, 2},{-16, 8},\
{ 7, 17},{ 6, 17},{-16, -8},{ 18, 1},{ 5, 17},{ -5, 17},{ -6, 17},{-11,-14},{ -7, 17},{ 16, -8},\
{-13,-12},{-12,-14},{ 13,-13},{-14, 12},{-13, 12},{-17, -7},{ 4,-18},{ 3,-18},{ 2,-18},{ 1,-18},\
{ 0,-18},{ -1,-18},{ -2,-18},{ -3,-18},{ -4,-18},{ 17, -7},{-18, 1},{ 9, 16},{ 8, 16},{ 12,-13},\
{-15, 10},{-17, -6},{ 13, 12},{ 14, 12},{ 18, 0},{ 17, -6},{ -8, 16},{ -9, 16},{-13, 13},{-12, 13},\
{ 17, 7},{-17, -5},{ 12, 13},{ 13, 13},{ 17, -5},{ 17, 5},{ 10, 15},{-18, 0},{ 18, 4},{-18, -4},\
{ 9,-16},{-13,-13},{-12,-13},{ 18, -1},{ 18, -4},{ 18, -6},{-19, 4},{ 12,-15},{ 18, -7},{-14, 13},\
{-16, 11},{ 11,-16},{-19, 0},{-10, 16},{-11, 16},{-19, 1},{ 10,-16},{ 18, 7},{ 11, 16},{ 19, -1},\
{ 11,-15},{ 19, -4},{ 10, 16},{-18, -5},{-19, -1},{-15, 12},{ 16,-11},{ 4, 19},{ 17, 8},{ 15,-11},\
{-19, -2},{-11,-16},{-10,-16},{-16, 10},{ 17, 9},{ 19, -2},{-13, 14},{ 14, 13},{ 5, 18},{-13,-14},\
{-18, 6},{-18, -6},{ 6, 18},{ 7,-18},{-15,-11},{ 4,-19},{ 3,-19},{ 2,-19},{ 1,-19},{ 0,-19},\
{ -1,-19},{ -2,-19},{ -3,-19},{ -4,-19},{ 2, 19},{ -7,-18},{ 6,-18},{ 19, -3},{-12, 15},{ 5,-18},\
{-16,-11},{ -3, 19},{ -9,-17},{ -8,-17},{ 8,-17},{ 18, -5},{ 17, -9},{ 7, 18},{ 9,-17},{ 17, -8},\
{ -5, 18},{ -4, 19},{-18, -7},{-17, -9},{-11, 15},{ 15, 12},{-19, -4},{ 9, 17},{ 8, 17},{ 19, 4},\
{-14,-13},{ 16, 10},{-19, 2},{-15,-12},{ 19, 2},{-17, 8},{-12,-15},{-17, -8},{-11,-15},{-17, 9},\
{ 16, 11},{ -2, 19},{ 14,-13},{ 15, 11},{ 19, 1},{ 18, 5},{ 13,-14},{ 15,-12},{ 0, 19},{ 18, 6},\
{ 16,-10},{ 19, 0},{-18, 5},{-18, 7},{ -5,-18},{ -6,-18},{ -7, 18},{ -6, 18},{ 19, 3},{ 12, 15},\
{ 11, 15},{-19, -3},{ -8, 17},{ -9, 17},{ 13, 14},{ 3, 19},{ -1, 19},{ 1, 19},{-15, 11},{-16,-10},\
{-19, 3},{-17, 10},{ -6, 19},{ 18, -8},{-16, 12},{ -4,-20},{-17,-10},{ 15,-13},{ -3, 20},{ 7, 19},\
{-20, -4},{ 8, 18},{-19, -7},{ 9, 18},{ 20, 2},{ 12, 16},{-14,-14},{ 17,-11},{ -7, 19},{ 12,-16},\
{ 9,-18},{ 8,-18},{-20, -3},{ -3,-20},{ -2,-20},{ -1,-20},{ 6, 19},{ -6,-19},{ -7,-19},{ 0,-20},\
{ 1,-20},{-17, 11},{-20, 3},{ -4, 20},{ 19, -7},{-20, 0},{ 20, -1},{-12,-16},{-20, 1},{ 20, -4},\
{-19, -6},{ 2,-20},{ 18, 8},{ -8,-18},{ -9,-18},{-17,-11},{ 14,-14},{ 3,-20},{ 4,-20},{ 16, 12},\
{ 17, 10},{-13,-15},{ 16,-12},{ 20, 0},{ 19, 6},{-18, 9},{ 14, 14},{ 20, 3},{-20, -1},{ 19, -6},\
{ 20, 4},{-15, 13},{ 13,-15},{ 0, 20},{ -1, 20},{-12, 16},{ 19, 7},{ -2, 20},{-19, -5},{ 1, 20},\
{ 2, 20},{-19, 7},{-16,-12},{-20, -2},{ 3, 20},{-13, 15},{ 4, 20},{-14, 14},{ 15, 13},{ 20, -2},\
{-19, 6},{ 7,-19},{ 6,-19},{ 5,-19},{ -5,-19},{ 5, 19},{ 20, -3},{-10,-17},{-11,-17},{ 18, -9},\
{ 10,-17},{ 11,-17},{ 19, -5},{ 11, 17},{ 10, 17},{-20, 4},{-18, -9},{-20, 2},{ 20, 1},{-18, -8},\
{-15,-13},{ 17, 11},{-18, 8},{ 18, 9},{ 19, 5},{ 17,-10},{ -5, 19},{-19, 5},{ -9, 18},{ -8, 18},\
{ 13, 15},{-10, 17},{-11, 17},{ 15,-14},{-19, 9},{ 21, 4},{ 19, 8},{-20, 5},{-19, 8},{-10, 19},\
{ 13,-16},{ 20, 7},{ 20, 5},{-20, 6},{-20, 7},{ 20, 6},{ -9, 19},{ 17,-12},{-14,-15},{-15,-15},\
{ 16,-14},{-18,-11},{ -8, 19},{-13,-16},{-14,-16},{ 18,-11},{ 11, 18},{ 10, 18},{-19,-10},{-18,-10},\
{-10, 18},{-11, 18},{ 13,-17},{ 12,-17},{ 18,-10},{ 19,-10},{-19, -9},{ 19, -9},{ 13, 17},{ 12, 17},\
{-19, -8},{-12,-17},{-13,-17},{-12, 17},{ 19, -8},{-13, 17},{ 14, 16},{-20, -7},{ 13, 16},{ 11,-18},\
{ 10,-18},{ 20, -7},{-15,-14},{-16,-14},{-20, -6},{-10,-18},{-11,-18},{ 20, -6},{-13, 16},{-14, 16},\
{-20, -5},{-17,-13},{-16,-13},{ 10,-19},{ 9,-19},{ 8,-19},{ 20, -5},{ 15, 15},{ 14, 15},{-21, -4},\
{ -8,-19},{ -9,-19},{-10,-19},{ 21, -4},{ -5, 20},{ -6, 20},{-21, -3},{ 8, 19},{-14, 15},{ 7,-20},\
{ 6,-20},{ 5,-20},{ -5,-20},{ -6,-20},{ 9, 19},{ 21, -3},{ 15,-15},{-15, 15},{ 14,-15},{-21, -2},\
{ 10, 19},{ -7,-20},{ 16, 14},{ 15, 14},{ -7, 20},{ 5, 20},{ 6, 20},{ 7, 20},{ 21, -2},{-21, -1},\
{-15, 14},{-16, 14},{ 4,-21},{ 3,-21},{ 2,-21},{ 1,-21},{ 0,-21},{ -1,-21},{ -2,-21},{ -3,-21},\
{ -4,-21},{ 21, -1},{ 17, 13},{ 16, 13},{ 14,-16},{-21, 0},{-16, 13},{-17, 13},{ 21, 0},{ 17, 12},\
{-21, 1},{ 16,-13},{-17, 12},{ 21, 1},{ 17,-13},{ 18, 11},{-21, 2},{ -4, 21},{ -3, 21},{ -2, 21},\
{ -1, 21},{ 0, 21},{ 1, 21},{ 2, 21},{ 21, 2},{-18, 11},{-21, 3},{ 19, 10},{ 18, 10},{ 3, 21},\
{ 4, 21},{ 21, 3},{-17,-12},{-21, 4},{-18, 10},{-19, 10},{ 19, 9},{ 21, -6},{-21, 7},{ 21, 8},\
{ 22, 3},{ 5, 21},{ 6, 21},{ 7, 21},{ -5,-21},{ -6,-21},{ -7,-21},{ -8,-21},{ 8, 21},{ 22, -1},\
{ 15,-16},{-17, 14},{ 18, 13},{-22, 0},{-12,-19},{-11,-19},{-22, -4},{-12, 19},{-11, 19},{ 21, -5},\
{ 11,-19},{ 12,-19},{ 16, 15},{ 9, 20},{ 10, 20},{-15, 16},{-21, -5},{-18,-13},{-22, 4},{ 22, 4},\
{-18, 13},{ 19, 12},{ 18, 12},{ 5,-21},{-21, 6},{ 22, 0},{-17,-14},{-13,-18},{-12,-18},{-21, -6},\
{-22, 1},{ 21, -7},{ 12,-18},{ 13,-18},{-21, -7},{ 15, 16},{ 4,-22},{ 3,-22},{ 2,-22},{ 1,-22},\
{ 0,-22},{ -1,-22},{ -2,-22},{ -3,-22},{ -4,-22},{-14, 17},{ 21, -8},{ 20, -8},{-14,-17},{-20, -8},\
{ 21, 5},{ 22, 1},{ -4, 22},{-18, 12},{-19, 12},{ 19, 11},{ 21, 7},{ 18,-13},{-22, 2},{-21, -8},\
{ 14, 17},{ 20, -9},{-20, -9},{ -8, 21},{ -7, 21},{ -6, 21},{ -5, 21},{-13, 18},{-12, 18},{ 20,-10},\
{ -2, 22},{-21, 8},{-20, 8},{-20, 10},{ 14,-17},{-20,-10},{ 12, 18},{ 13, 18},{ 22, 2},{ -1, 22},\
{ 19,-11},{ 20, 9},{ 0, 22},{-22, 3},{-20, 9},{ 4, 22},{ 3, 22},{ 2, 22},{ 17,-14},{-19, 11},\
{ 20, 10},{ -3, 22},{-21, 5},{ 1, 22},{-15,-16},{-19,-11},{-19,-12},{-18,-12},{-16,-15},{-10,-20},\
{ -8, 20},{ -9,-20},{ -8,-20},{-22, -2},{ 19,-12},{ 18,-12},{ 8, 20},{ 11, 19},{ 17, 14},{-16, 15},\
{ 20, 8},{ 22, -2},{ -9, 20},{-10, 20},{ 22, -3},{ 8,-20},{ 9,-20},{ 10,-20},{-22, -1},{ 16,-15},\
{-22, -3},{ 12, 19},{ 22, -4},{ 21, 6},{ 8,-21},{ 7,-21},{ 6,-21},{-16,-16},{ 23, -2},{-23, 2},\
{ 4,-23},{ 22, 7},{-22, 7},{ 3,-23},{-22, -8},{ 2,-23},{ 23, 3},{ 23, 4},{ 21, -9},{ 1,-23},\
{ 0,-23},{-21, -9},{ 15, 17},{ 16, 17},{ 8, 22},{ -9,-21},{ 13, 19},{ 3, 23},{ 2, 23},{ 1, 23},\
{ 0, 23},{-13,-19},{ 7, 22},{ 6, 22},{ 23, -1},{-10, 21},{ -9, 21},{-18, 14},{ 19, 13},{ -1,-23},\
{ 9, 21},{ 10, 21},{ -5, 22},{-23, 0},{ -2,-23},{-23, 4},{ -3,-23},{ -4,-23},{-22, 8},{-23, -4},\
{ 22, -5},{ 19,-13},{-10,-21},{ 5, 22},{-15, 18},{-14, 18},{-20,-11},{ 13,-19},{-20,-12},{ 17, 15},\
{ 18, 15},{-17, 16},{-12, 20},{ 21,-10},{ 23, -3},{ 11, 20},{ 12, 20},{-16, 16},{ 16,-16},{-18,-15},\
{-22, -5},{-17,-15},{-19,-13},{ 22, -6},{ 22, 8},{-21, 9},{-23, -3},{-19, 13},{ 20, 12},{-21, 10},\
{-12,-20},{ 15,-17},{ -1, 23},{ -2, 23},{ -3, 23},{ -4, 23},{ 18,-15},{ 16,-17},{-11,-20},{ 23, 0},\
{-18,-14},{-22, 6},{-21,-10},{-15,-18},{-14,-18},{-11, 20},{ 20,-12},{ 21, 9},{-23, 1},{-13, 19},\
{ -7, 22},{-22, -6},{ 22, -7},{ 23, 2},{ 23, -4},{ 14, 18},{ 14,-18},{ 15,-18},{ 18,-14},{-22, -7},\
{ 20,-11},{ 16, 16},{ 17, 16},{-16, 17},{-15, 17},{ 8,-22},{ 7,-22},{ 6,-22},{ 5,-22},{ 10,-21},\
{ 15, 18},{ 4, 23},{-23, -2},{-23, 3},{-23, -1},{ 9,-21},{-22, 5},{ -6, 22},{ -5,-22},{ -6,-22},\
{ -7,-22},{ -8,-22},{ 11,-20},{ -8, 22},{ 22, -8},{ 12,-20},{ 22, 5},{-17,-16},{-16,-17},{-15,-17},\
{ 18, 14},{-20, 11},{ 21, 10},{-18, 15},{ 23, 1},{-17, 15},{ 22, 6},{ 17,-15},{-20, 12},{ 20, 11},\
{ 17,-16},{-15, 19},{ 19,-14},{ 20,-14},{-20,-13},{-14, 19},{ 18,-16},{ 20,-13},{-21,-12},{ 21,-12},\
{-21,-11},{-18,-16},{ 21,-11},{-22,-10},{ 17,-17},{ 22,-10},{-22, -9},{ 22, -9},{-23, -8},{-17,-17},\
{ -8, 23},{ 23, -8},{-23, -7},{ 16,-18},{ 23, -7},{-23, -6},{-16,-18},{ -7, 23},{ -6, 23},{ -5, 23},\
{ 23, -6},{-23, -5},{ 15,-19},{ 14,-19},{ 23, -5},{-24, -4},{-14,-19},{-15,-19},{ 5, 23},{ 6, 23},\
{ 7, 23},{ 24, -4},{-24, -3},{ 14,-20},{ 13,-20},{ 24, -3},{-24, -2},{-13,-20},{-14,-20},{ 8, 23},\
{ 24, -2},{-24, -1},{ 12,-21},{ 11,-21},{ 24, -1},{-24, 0},{ 14, 19},{-11,-21},{-12,-21},{ 15, 19},\
{ 24, 0},{-24, 1},{ 10,-22},{ 9,-22},{ -9,-22},{-10,-22},{ 24, 1},{-24, 2},{ -4, 24},{ -3, 24},\
{ -2, 24},{ -1, 24},{ 0, 24},{ 1, 24},{ 2, 24},{ 3, 24},{ 4, 24},{ 24, 2},{-24, 3},{ 8,-23},\
{ 7,-23},{ 6,-23},{ 5,-23},{ -5,-23},{ -6,-23},{ -7,-23},{ -8,-23},{ 24, 3},{-24, 4},{ 24, 4},\
{-23, 5},{ 4,-24},{ 3,-24},{ 2,-24},{ 1,-24},{ 0,-24},{ -1,-24},{ -2,-24},{ -3,-24},{ -4,-24},\
{ 23, 5},{-23, 6},{ 23, 6},{-23, 7},{ 23, 7},{-23, 8},{ -9, 22},{-10, 22},{ 23, 8},{-22, 9},\
{ 22, 9},{-22, 10},{ 12, 21},{ 11, 21},{ 22, 10},{-21, 11},{-11, 21},{-12, 21},{ 21, 11},{-21, 12},\
{ 21, 12},{-20, 13},{-14, 20},{ 14, 20},{ 13, 20},{-13, 20},{ 20, 13},{-20, 14},{-19, 14},{ 19, 14},\
{ 20, 14},{-19, 15},{ 19, 15},{-18, 16},{ 18, 16},{ 10, 22},{-17, 17},{ 17, 17},{ 9, 22},{-16, 18},\
{ 16, 18},{-19,-15},{ 19,-15},{-20,-14},{-19,-14},{ 1,-25},{-15, 20},{-21, 13},{ 22, 12},{ 25, 0},\
{-25, 1},{-24, 8},{ -2, 25},{ 14, 21},{ 13, 21},{ 16, 19},{-11, 22},{-25, 4},{ -6,-24},{-12, 22},\
{ 12,-22},{ -5,-24},{ 25, 3},{ 11,-22},{-11,-22},{-12,-22},{ 17, 19},{ 5,-24},{ 6,-24},{-11,-23},\
{-10,-23},{ -9,-23},{ 9,-23},{ 10,-23},{ 11,-23},{ 7,-24},{ 25, 1},{ 23, 10},{ 8,-24},{ 21,-14},\
{-22, 12},{ 23, 11},{ 22, 11},{-16, 19},{-25, 2},{ 0,-25},{-23, 11},{-22, 11},{-14, 21},{ -1,-25},\
{-13, 21},{-25, 3},{ -2,-25},{-21,-14},{ -8, 24},{ -3, 25},{ 25, 2},{ -7, 24},{ -6, 24},{ -5, 24},\
{-21,-13},{ 19,-16},{ 21,-13},{-22,-12},{ 22,-12},{-23,-11},{ -3,-25},{ -4,-25},{-22,-11},{-20,-15},\
{-19,-16},{ 18, 18},{ 17, 18},{ 22,-11},{ 23,-11},{-23,-10},{ 19,-17},{ 18,-17},{ 23,-10},{-17, 18},\
{-18, 18},{ 19, 17},{ 18, 17},{ -5,-25},{ 24, 6},{-23, -9},{ 23, -9},{-24, 5},{-25, 5},{-24, 6},\
{-24, -8},{-18,-17},{ 20,-15},{ 25, 4},{-19,-17},{-11, 23},{ 24, 8},{-17, 19},{-10, 23},{ -9, 23},\
{ 24, -8},{-18, 17},{-19, 17},{ -5, 25},{-23, 9},{ 11, 22},{ 12, 22},{ 19, 16},{-24, -7},{ 18,-18},\
{ 17,-18},{ 24, -7},{-24, -6},{-17,-18},{-18,-18},{ 24, -6},{ -4, 25},{ 25, 5},{ 24, 5},{-25, -5},\
{-24, -5},{-19, 16},{ 20, 15},{ 17,-19},{ 16,-19},{ 24, -5},{ 25, -5},{-25, -4},{-16,-19},{ 5, 25},\
{ 4, 25},{ 3, 25},{-24, 7},{ 5,-25},{ 4,-25},{ -8,-24},{ -7,-24},{ 3,-25},{ 24, 7},{-17,-19},\
{ 25, -4},{-25, -3},{ 15,-20},{ 25, -3},{-20, 15},{ 21, 14},{ 2,-25},{ 2, 25},{ 1, 25},{-25, -2},\
{ 23, 9},{ 0, 25},{-15,-20},{ 9, 23},{ 10, 23},{ 11, 23},{ 25, -2},{-25, -1},{ -1, 25},{-23, 10},\
{ 14,-21},{ 8, 24},{ 7, 24},{ 6, 24},{ 5, 24},{ 13,-21},{ 25, -1},{-21, 14},{ 21, 13},{-25, 0},\
{-13,-21},{-14,-21},{ 15, 20},{ 26, 5},{ 8,-25},{ 7,-25},{ 6,-25},{ -6,-25},{ -7,-25},{ -8,-25},\
{-11,-24},{-10,-24},{ -9,-24},{ 21,-15},{ 25, 7},{-25, 8},{ 9,-24},{ 10,-24},{ 11,-24},{ 7, 25},\
{ 8, 25},{ -5, 26},{ -4, 26},{-26, 5},{ 26, 4},{ 25, 8},{-24, 9},{ -3, 26},{ -2, 26},{ -1, 26},\
{ 5,-26},{ 4,-26},{ 3,-26},{ 2,-26},{ 1,-26},{ 0,-26},{ -1,-26},{ -2,-26},{ -3,-26},{ -4,-26},\
{ 11, 24},{ 10, 24},{ 9, 24},{ 24, 9},{-24, 10},{ -5,-26},{ 16, 21},{ 15, 21},{-26, 4},{ 26, 3},\
{-13,-23},{-12,-23},{ 12,-23},{ 24, 10},{-24, 11},{ 13,-23},{-26, 3},{ 26, 2},{-22,-14},{-15, 21},\
{-16, 21},{-14,-22},{-13,-22},{ 18, 19},{-26, 2},{ 24, 11},{-23, 12},{ 26, 1},{ 13,-22},{ 14,-22},\
{-17, 20},{-14, 22},{-13, 22},{-16, 20},{-26, 1},{ 26, 0},{-22,-13},{ 23, 12},{-23, 13},{-22, 13},\
{-23,-13},{ -9, 24},{-10, 24},{-11, 24},{ 17, 20},{ 16, 20},{-16,-21},{-15,-21},{-26, 0},{ 22, 13},\
{ 23, 13},{-22, 14},{ 26, -1},{ 15,-21},{ 16,-21},{-26, -1},{ 26, -2},{ 13, 23},{ 12, 23},{-17,-20},\
{-16,-20},{-26, -2},{ 22, 14},{-21, 15},{ 22,-14},{ 26, -3},{ 16,-20},{ 17,-20},{-26, -3},{ 26, -4},\
{-18,-19},{-26, -4},{ 26, -5},{ 18,-19},{ 21, 15},{ 14, 22},{ 5, 26},{-21, 16},{-20, 16},{-26, -5},\
{ 25, -6},{-19,-18},{-25, -6},{ 25, -7},{-25, -7},{-18, 19},{ 20, 16},{ 21, 16},{ 4, 26},{ 13, 22},\
{ 3, 26},{-20, 17},{ 25, -8},{ 19,-18},{-12, 23},{-20,-17},{-25, -8},{ 24, -9},{-24, -9},{ 20, 17},\
{ 2, 26},{ 1, 26},{-19, 18},{ 24,-10},{ 20,-17},{-13, 23},{-24,-10},{ 24,-11},{ 19, 18},{ 0, 26},\
{-21,-16},{-20,-16},{-21,-15},{-24,-11},{ 23,-12},{-23,-12},{ 23,-13},{ 22,-13},{ 20,-16},{ 21,-16},\
{ 6, 25},{ -6, 25},{ -7, 25},{ -8, 25},{ 25, 6},{-25, 7},{-25, 6},{ -2,-27},{ 3, 27},{ 2, 27},\
{ 17,-21},{-27, -5},{ -1,-27},{ 26, -6},{ -5,-27},{ 27, 2},{ 19, 19},{-13, 24},{-25, 10},{ 14,-23},\
{ -4,-27},{-27, -1},{-20,-18},{ 27, -2},{ 15,-23},{-15, 23},{ 24,-12},{-14, 23},{-26, -6},{ -7,-26},\
{-15, 22},{ 26, -7},{ 0,-27},{-11, 25},{ 21,-17},{-10, 25},{ 1,-27},{ 23,-15},{-26, -7},{ 18, 20},\
{ 22,-15},{ 15, 23},{-26, 8},{ 14, 23},{ 22, 16},{ 27, 5},{ -9, 25},{ 0, 27},{ 26, 7},{ 13,-24},\
{ -1, 27},{-22,-15},{-12,-24},{ 25,-10},{ -8, 26},{-16, 22},{-21, 17},{-13,-24},{-25, 9},{-17,-21},\
{-23,-15},{ -8,-26},{ 26, -8},{ 2,-27},{ 3,-27},{-17, 21},{ 20,-18},{ 9, 25},{-24, 13},{-26, 6},\
{-18,-20},{ 15,-22},{ 26, 8},{-20, 18},{-25, -9},{ 21, 17},{-10,-25},{ -7, 26},{ 10,-25},{-21,-17},\
{ -6, 26},{ 4, 27},{ 27, 4},{-27, 5},{-11,-25},{-26, -8},{ 25, 9},{ 24, 12},{-24,-12},{ 25, -9},\
{ 12,-24},{-24,-13},{ 23,-14},{ 12, 24},{ 1, 27},{ 23, 14},{-27, 0},{ -9,-25},{ 27, -1},{ 8, 26},\
{ -5, 27},{ 7, 26},{ 27, 3},{ 20, 18},{-23, 15},{-22, 15},{-15,-23},{ 13, 24},{-26, 7},{-27, -2},\
{ 27, -3},{-25,-11},{ 24, 13},{ 10, 25},{ 5, 27},{-14,-23},{ 18,-20},{ 9,-25},{ 27, 0},{ 25,-11},\
{ 4,-27},{ 27, 1},{ -6,-26},{-27, -3},{ 27, -4},{ 25, 10},{-24, 12},{ 5,-27},{-12, 24},{ 25, 11},\
{-27, 1},{ 11, 25},{-19,-19},{-23, 14},{-27, 2},{ 6,-26},{ 7,-26},{ 24,-13},{-27, -4},{ 27, -5},\
{ 11,-25},{ 8,-26},{ 26, 6},{ 17, 21},{ -4, 27},{ -3, 27},{ 16,-22},{-25, 11},{-25,-10},{ 22, 15},\
{ 23, 15},{ -3,-27},{-15,-22},{ 6, 26},{ 16, 22},{ 15, 22},{-27, 4},{-16,-22},{-18, 20},{ -2, 27},\
{-22, 16},{-23,-14},{ 22,-16},{-27, 3},{-19, 19},{ 19,-19},{-22,-16}};
static int kernel_limits[]={ 1, 9, 21, 37, 69, 97, 137, 177, 225, 293, 349, 421, 489, 577, \
665, 749, 861, 973,1085,1201,1313,1457,1597,1741,1885,2053,2217};
#define MAXKERN 2217
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment