⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 imdi_gen.h

📁   这是一个高速多维插值算法。当我们建模以后
💻 H
字号:
#ifndef IMDI_GEN_H#define IMDI_GEN_H/* Integer Multi-Dimensional Interpolation *//* * Copyright 2000 - 2002 Graeme W. Gill * All rights reserved. * * This material is licenced under the GNU GENERAL PUBLIC LICENCE :- * see the Licence.txt file for licencing details. *//* Kernel code generation definitions */#include "imdi.h"#include "arch.h"typedef enum {	invalid_dir = 0,	forward = 1,		/* 8 Bits per value, pixel interleaved, no padding */	backward = 2		/* 8 bits per value, plane interleaved */} imdi_dir;/* -------------------------------------------------- *//* High level kernel generation description *//* This sructure allows a series of related kernels to be generated, *//* the only variation being the number of input and output dimensions. */typedef struct {	int idcombs[10];	/* Input dimension combinations (0 at end) */	int itres[10];		/* Interpolation table resolutions for each input dimension */	int stres[10];		/* Simplex table resolutions for each input dimension */	int odcombs[10];	/* Output dimensions combinations (0 at end) */	imdi_pixrep incombs[10];/* Input pixel representation combinations */	imdi_pixrep outcombs[10];	/* Output pixel representation combinations */	imdi_dir dircombs[10];	/* Direction combinations (not implemented) */} gendesc;/* -------------------------------------------------- *//* Detailed level of generation specification *//* Pixel layout: *//* Each channel value is assumed to be read with a 		*//* native machine single read of size bpch, 			*//* and bov and bpv being bit indexes into that value.	*//*                                        				*//* If pint == 0, then each read will be of size bpch[], and will *//* have its own pointer, will be incremented by chi[].	*//* If pint != 0, then the reads will be size bpch[0], from successive *//* locations, chi[] apart. 								*//*                                        				*//* If packed == 0, then separate reads are needed for each input *//* channel.												*//* If packed != 0, then the channel values will be extracted *//* from a single read of size bpch[0]					*//*                                        				*//* Note that at all times the bit offset and size values *//* will be obeyed for each input value. 				*/typedef struct {	int bpch[IXDIDO];	/* Bits per channel read (must be divisible by 8) */	int chi[IXDIDO];	/* channel increment in multiples of bpch[] (0 == dimensionality) */	int bov[IXDIDO];	/* Bit offset to value within channel */	int	bpv[IXDIDO];	/* Bits per value within channel */	int pint;			/* Flag - nonz if pixel interleaved (ie. reads from successice locations) */	int packed;			/* Flag - nonz if all channels are packed into a single read */} pixlayout;/* Structure that specifies the configuration of a generated interpolation kernel. */typedef struct {	/* Input to code generator */	int prec;		/* Basic precision:- either 8 or 16 bits, determined by irep */ 	int id;			/* Number of input dimensions */	int od;			/* Number of output dimensions */	imdi_pixrep irep;/* Input pixel representation */	imdi_pixrep orep;/* Output pixel representation */	int in_signed;	/* Bit flag per channel, NZ if treat as signed (runtime setup) */	int out_signed;	/* Bit flag per channel, NZ if treat as signed (runtime setup) */	pixlayout in;	/* Input pixel layout */	pixlayout out;	/* Output pixel layout */	int dir;		/* forward or backward (not implemented */	int itres;		/* Interpolation table resolution */	int stres;		/* Simplex table resolution */	/* Returned value */	char kkeys[100];				/* Kernel keys */	char kdesc[100];				/* At genspec time */	char kname[100];				/* At generation time */} genspec;/* Supported code generators */int gen_c_kernel(genspec *g, mach_arch *a, FILE *fp, int index);	/* The 'C' code generator *//* asm, MMX, etc. generators declarations go here ! */#endif /* IMDI_GEN_H */

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -