/****************************************************************************/ /* (C) Copyright 1993 Universidade Estadual de Campinas (UNICAMP) */ /* Campinas, SP, Brazil */ /* */ /* This file can be freely distributed, modified, and used for any */ /* non-commercial purpose, provided that this copyright and authorship */ /* notice be included in any copy or derived version of this file. */ /* */ /* DISCLAIMER: This software is offered ``as is'', without any guarantee */ /* as to fitness for any particular purpose. Neither the copyright */ /* holder nor the authors or their employers can be held responsible for */ /* any damages that may result from its use. */ /****************************************************************************/ char *aat_ftag = "f6"; char *aat_fname = "d = x-y; h = d(1-d^2); u = x+h; v = x+h; f = u^2 + v^2 + 2uv - 1/4"; Float aat_f_flt (Float x, Float y) { ROUND_NEAR; { Float d = x - y; Float h = Quarter * d * (One - d*d); Float u = x + h; Float v = y + h; Float u2 = u*u; Float v2 = v*v; Float uv = u*v; Float m = u2 + v2 + uv + uv; Float res = m - Quarter; return (res); } } Interval aat_f_ia (Interval x, Interval y) { Interval d = ia_sub(x, y); Interval h = ia_mul(d, ia_affine(ia_sqr(d), -One, Four, Quarter, Zero)); Interval u = ia_add(x, h); Interval v = ia_add(y, h); Interval u2 = ia_sqr(u); Interval v2 = ia_sqr(v); Interval uv = ia_mul(u, v); Interval m = ia_add(ia_add(u2, v2), ia_add(uv, uv)); Interval res = ia_shift(m, - Quarter); return (res); } AAP aat_f_aa (AAP x, AAP y) { MemP frame = aa_top(); AAP d = aa_sub(x, y); AAP h = aa_mul(d, aa_affine(aa_sqr(d), -One, Four, Quarter, Zero)); AAP u = aa_add(x, h); AAP v = aa_add(y, h); AAP u2 = aa_sqr(u); AAP v2 = aa_sqr(v); AAP uv = aa_mul(u, v); AAP m = aa_add(aa_add(u2, v2), aa_add(uv, uv)); AAP res = aa_shift(m, - Quarter); return (aa_return(frame, res)); } Interval aat_fxd = {-Four, Four}; Interval aat_fyd = {-Four, Four}; int aat_fn = 64;