50 lines
2.2 KiB
C
50 lines
2.2 KiB
C
|
#ifndef COSMOPOLITAN_DSP_SCALE_SCALE_H_
|
||
|
#define COSMOPOLITAN_DSP_SCALE_SCALE_H_
|
||
|
#if !(__ASSEMBLER__ + __LINKER__ + 0)
|
||
|
COSMOPOLITAN_C_START_
|
||
|
|
||
|
extern long gyarados_latency_;
|
||
|
|
||
|
extern signed char g_magikarp[8];
|
||
|
extern signed char g_magkern[8];
|
||
|
extern const signed char kMagikarp[8][8];
|
||
|
extern const signed char kMagkern[8][8];
|
||
|
|
||
|
struct SamplingSolution;
|
||
|
void FreeSamplingSolution(struct SamplingSolution *);
|
||
|
struct SamplingSolution *ComputeSamplingSolution(long, long, double, double,
|
||
|
double);
|
||
|
|
||
|
void *Scale2xX(long ys, long xs, unsigned char[ys][xs], long, long);
|
||
|
void *Scale2xY(long ys, long xs, unsigned char[ys][xs], long, long);
|
||
|
void *Magikarp2xX(long ys, long xs, unsigned char[ys][xs], long, long);
|
||
|
void *Magikarp2xY(long ys, long xs, unsigned char[ys][xs], long, long);
|
||
|
void *Magkern2xX(long ys, long xs, unsigned char[ys][xs], long, long);
|
||
|
void *Magkern2xY(long ys, long xs, unsigned char[ys][xs], long, long);
|
||
|
void *MagikarpY(long dys, long dxs, unsigned char d[restrict dys][dxs],
|
||
|
long sys, long sxs, const unsigned char s[sys][sxs], long yn,
|
||
|
long xn, const signed char K[8]);
|
||
|
|
||
|
void *GyaradosUint8(long dyw, long dxw, unsigned char dst[dyw][dxw], long syw,
|
||
|
long sxw, const unsigned char src[syw][sxw], long dyn,
|
||
|
long dxn, long syn, long sxn, long lo, long hi,
|
||
|
struct SamplingSolution *cy, struct SamplingSolution *cx,
|
||
|
bool sharpen);
|
||
|
void *EzGyarados(long dcw, long dyw, long dxw, unsigned char dst[dcw][dyw][dxw],
|
||
|
long scw, long syw, long sxw,
|
||
|
const unsigned char src[scw][syw][sxw], long c0, long cn,
|
||
|
long dyn, long dxn, long syn, long sxn, double ry, double rx,
|
||
|
double oy, double ox);
|
||
|
|
||
|
void Decimate2xUint8x8(unsigned long n, unsigned char[n * 2],
|
||
|
const signed char[static 8]);
|
||
|
void *cDecimate2xUint8x8(unsigned long n, unsigned char[n * 2],
|
||
|
const signed char[8]);
|
||
|
|
||
|
void *transpose(long yn, long xn, const unsigned char[yn][xn]);
|
||
|
extern void (*const transpose88b)(unsigned char[8][8]);
|
||
|
|
||
|
COSMOPOLITAN_C_END_
|
||
|
#endif /* !(__ASSEMBLER__ + __LINKER__ + 0) */
|
||
|
#endif /* COSMOPOLITAN_DSP_SCALE_SCALE_H_ */
|