----boundary-LibPST-iamunique-1715848038_-_-
Content-type: text/plain
Ah,
The zip file seems to be for a FIR (Finite Impulse Response) filter and not a goto remover.
-Doug
CFB Software wrote:
-----Original Message-----
From: blackbox{([at]})nowhere.xy Behalf Of Campbell, Robert D (SELEX) (UK Edinburgh)
Sent: Thursday, 27 October 2005 5:37 PM
To: BlackBox Mailing List
Subject: [BlackBox] - GOTOs
But I did finally come up with a general purpose technique
that, I guess, could be automated. It does nothing to make
the code comprehensible, it has no pretensions to efficiency,
but it did allow me to produce a useful outcome. (I don't use
it often, but by coincidence I used it yesterday, and once in
February!)
Ingenious! However, this approach would really have to be a very last,
desperate, resort.
How are you able to have any trust in the results of a program that is
so incomprehensible?
To complete the circle of this correspondence this algorithm
(Remez) is discussed in Numerical Recipes. The authors
acknowledge that the results are 'Optimum', but they do not
like or include it because it is too complicated to code.
They advocate a different simpler approach whose results are
'nearly as good' (which means 'not as good'!).
A quick Google search revealed an alternative implementation (?) of the
Remez Algorithm in C. I might be on the wrong track altogether. Knowing
absolutely nothing at all about the underlying theory I'm unable to
judge whether or not this is a solution to the same problem, or whether
it has any use.
However, this one I was able to read and have some confidence that I
would be able to debug it if necessary:
http://www.janovetz.com/jake/remez/remez-19980711.zip
It would not be too difficult to translate it into Oberon / CP.
Hmmm ... maybe a C to Oberon translator should be the next project ...
Chris Burrows
CFB Software
http://www.cfbsoftware.com/gpcp
--- BlackBox
--- send subject HELP or UNSUBSCRIBE to blackbox{([at]})nowhere.xy
----boundary-LibPST-iamunique-1715848038_-_-
Content-type: application/rtf
Content-transfer-encoding: base64
Content-Disposition: attachment; filename="rtf-body.rtf"
e1xydGYxXGFuc2lcYW5zaWNwZzEyNTJcZnJvbWh0bWwxIFxkZWZmMHtcZm9udHRibA0Ke1xmMFxm
c3dpc3MgQXJpYWw7fQ0Ke1xmMVxmbW9kZXJuIENvdXJpZXIgTmV3O30NCntcZjJcZm5pbFxmY2hh
cnNldDIgU3ltYm9sO30NCntcZjNcZm1vZGVyblxmY2hhcnNldDAgQ291cmllciBOZXc7fX0NCntc
Y29sb3J0YmxccmVkMFxncmVlbjBcYmx1ZTA7XHJlZDBcZ3JlZW4wXGJsdWUyNTU7fQ0KXHVjMVxw
YXJkXHBsYWluXGRlZnRhYjM2MCBcZjBcZnMyNCANCntcKlxodG1sdGFnMjQzIDwhRE9DVFlQRSBo
dG1sIFBVQkxJQyAiLS8vVzNDLy9EVEQgSFRNTCA0LjAxIFRyYW5zaXRpb25hbC8vRU4iPn0NCntc
KlxodG1sdGFnMyBccGFyIH0NCntcKlxodG1sdGFnMTkgPGh0bWw+fQ0Ke1wqXGh0bWx0YWcyIFxw
YXIgfQ0Ke1wqXGh0bWx0YWczNCA8aGVhZD59DQp7XCpcaHRtbHRhZzEgXHBhciB9DQp7XCpcaHRt
bHRhZzI0MSAgIH0NCntcKlxodG1sdGFnMSBccGFyIH0NCntcKlxodG1sdGFnMjQxICAgfQ0Ke1wq
XGh0bWx0YWcxNzcgPHRpdGxlPn0NCntcKlxodG1sdGFnMjQxIH0NCntcKlxodG1sdGFnMTg1IDwv
dGl0bGU+fQ0Ke1wqXGh0bWx0YWcxIFxwYXIgfQ0Ke1wqXGh0bWx0YWc0MSA8L2hlYWQ+fQ0Ke1wq
XGh0bWx0YWcyIFxwYXIgfQ0Ke1wqXGh0bWx0YWc1MCA8Ym9keSBiZ2NvbG9yPSIjZmZmZmZmIiB0
ZXh0PSIjMDAwMDAwIj59XGh0bWxydGYgXHZpZXdraW5kNQ0Ke1wqXGJhY2tncm91bmQge1xzaHB7
XCpcc2hwaW5zdHtcc3B7XHNuIGZpbGxDb2xvcn17XHN2IDE2Nzc3MjE1fX17XHNwe1xzbiBmRmls
bGVkfXtcc3YgMX19fX19XGh0bWxydGYwIA0Ke1wqXGh0bWx0YWcwIFxwYXIgfXtcKlxodG1sdGFn
NjR9XGh0bWxydGYge1xodG1scnRmMCBBaCwNCntcKlxodG1sdGFnMTE2IDxicj59XGh0bWxydGYg
XGxpbmUNClxodG1scnRmMCANCntcKlxodG1sdGFnNCBccGFyIH1UaGUgemlwIGZpbGUgc2VlbXMg
dG8gYmUgZm9yIGEgRklSIChGaW5pdGUgSW1wdWxzZSBSZXNwb25zZSkgZmlsdGVyIGFuZA0Ke1wq
XGh0bWx0YWc0IFxwYXIgfVxodG1scnRmICBcaHRtbHJ0ZjAgbm90IGEgZ290byByZW1vdmVyLg0K
e1wqXGh0bWx0YWcxMTYgPGJyPn1caHRtbHJ0ZiBcbGluZQ0KXGh0bWxydGYwIA0Ke1wqXGh0bWx0
YWc0IFxwYXIgfS1Eb3VnDQp7XCpcaHRtbHRhZzExNiA8YnI+fVxodG1scnRmIFxsaW5lDQpcaHRt
bHJ0ZjAgDQp7XCpcaHRtbHRhZzQgXHBhciB9DQp7XCpcaHRtbHRhZzExNiA8YnI+fVxodG1scnRm
IFxsaW5lDQpcaHRtbHJ0ZjAgDQp7XCpcaHRtbHRhZzQgXHBhciB9Q0ZCIFNvZnR3YXJlIHdyb3Rl
Og0Ke1wqXGh0bWx0YWc0IFxwYXIgfVxodG1scnRmICBcaHRtbHJ0ZjAge1wqXGh0bWx0YWc3Mn1c
aHRtbHJ0ZlxwYXJ9XGh0bWxydGYwDQoNCntcKlxodG1sdGFnOTYgPGJsb2NrcXVvdGUgY2l0ZT0i
bWlkQU1FVEhZU1QyajAzb0hNd1ZONzAwMDAwMmVhQGFtZXRoeXN0Mi5vYmVyb24uY2giXHBhciAg
dHlwZT0iY2l0ZSI+fVxodG1scnRmIFxwYXINCntcaHRtbHJ0ZjAgDQp7XCpcaHRtbHRhZzAgXHBh
ciB9DQp7XCpcaHRtbHRhZzI0MCAgIH0NCntcKlxodG1sdGFnOTYgPGJsb2NrcXVvdGUgdHlwZT0i
Y2l0ZSI+fVxodG1scnRmIHtcaHRtbHJ0ZjAgDQp7XCpcaHRtbHRhZzAgXHBhciB9DQp7XCpcaHRt
bHRhZzI0MCAgICAgfQ0Ke1wqXGh0bWx0YWcxMjggPHByZSB3cmFwPSIiPn1caHRtbHJ0ZiB7XHBh
cmRccGxhaW5cZjFcZnMyMCBcaHRtbHJ0ZjAgXGh0bWxydGYge1xodG1scnRmMCBcbGk3MjAgLS0t
LS1PcmlnaW5hbCBNZXNzYWdlLS0tLS1cbGluZQ0KRnJvbToge30NCntcKlxodG1sdGFnODQgPGEg
Y2xhc3M9Im1vei10eHQtbGluay1hYmJyZXZpYXRlZCIgaHJlZj0ibWFpbHRvOmJsYWNrYm94QG9i
ZXJvbi5jaCI+fVxodG1scnRmIHtcZmllbGR7XCpcZmxkaW5zdHtIWVBFUkxJTksgIm1haWx0bzpi
bGFja2JveEBvYmVyb24uY2gifX17XGZsZHJzbHRcY2YxXHVsIFxodG1scnRmMCBibGFja2JveEBv
YmVyb24uY2hcaHRtbHJ0ZiB9XGh0bWxydGYwIFxodG1scnRmIH1caHRtbHJ0ZjAgDQp7XCpcaHRt
bHRhZzkyIDwvYT59IFt7fQ0Ke1wqXGh0bWx0YWc4NCA8YSBjbGFzcz0ibW96LXR4dC1saW5rLWZy
ZWV0ZXh0IiBocmVmPSJtYWlsdG86YmxhY2tib3hAb2Jlcm9uLmNoIj59XGh0bWxydGYge1xmaWVs
ZHtcKlxmbGRpbnN0e0hZUEVSTElOSyAibWFpbHRvOmJsYWNrYm94QG9iZXJvbi5jaCJ9fXtcZmxk
cnNsdFxjZjFcdWwgXGh0bWxydGYwIG1haWx0bzpibGFja2JveEBvYmVyb24uY2hcaHRtbHJ0ZiB9
XGh0bWxydGYwIFxodG1scnRmIH1caHRtbHJ0ZjAgDQp7XCpcaHRtbHRhZzkyIDwvYT59XSBPbiBc
bGluZQ0KQmVoYWxmIE9mIENhbXBiZWxsLCBSb2JlcnQgRCAoU0VMRVgpIChVSyBFZGluYnVyZ2gp
XGxpbmUNClNlbnQ6IFRodXJzZGF5LCAyNyBPY3RvYmVyIDIwMDUgNTozNyBQTVxsaW5lDQpUbzog
QmxhY2tCb3ggTWFpbGluZyBMaXN0XGxpbmUNClN1YmplY3Q6IFtCbGFja0JveF0gLSBHT1RPc1xs
aW5lDQpcbGluZQ0KXGxpbmUNCkJ1dCBJIGRpZCBmaW5hbGx5IGNvbWUgdXAgd2l0aCBhIGdlbmVy
YWwgcHVycG9zZSB0ZWNobmlxdWUgXGxpbmUNCnRoYXQsIEkgZ3Vlc3MsIGNvdWxkIGJlIGF1dG9t
YXRlZC4gSXQgZG9lcyBub3RoaW5nIHRvIG1ha2UgXGxpbmUNCnRoZSBjb2RlIGNvbXByZWhlbnNp
YmxlLCBpdCBoYXMgbm8gcHJldGVuc2lvbnMgdG8gZWZmaWNpZW5jeSwgXGxpbmUNCmJ1dCBpdCBk
aWQgYWxsb3cgbWUgdG8gcHJvZHVjZSBhIHVzZWZ1bCBvdXRjb21lLiAoSSBkb24ndCB1c2UgXGxp
bmUNCml0IG9mdGVuLCBidXQgYnkgY29pbmNpZGVuY2UgSSB1c2VkIGl0IHllc3RlcmRheSwgYW5k
IG9uY2UgaW4gXGxpbmUNCkZlYnJ1YXJ5ISlcbGluZQ0KICAgIFxodG1scnRmXHBhcn1caHRtbHJ0
ZjANCg0Ke1wqXGh0bWx0YWcxMzYgPC9wcmU+fVxodG1scnRmIH1caHRtbHJ0ZjAgDQp7XCpcaHRt
bHRhZzAgXHBhciB9DQp7XCpcaHRtbHRhZzI0MCAgIH0NCntcKlxodG1sdGFnMTA0IDwvYmxvY2tx
dW90ZT59XGh0bWxydGYgfVxwYXINClxodG1scnRmMCANCntcKlxodG1sdGFnMCBccGFyIH0NCntc
KlxodG1sdGFnMjQwICAgfQ0Ke1wqXGh0bWx0YWcxMjggPHByZSB3cmFwPSIiPn1caHRtbHJ0ZiB7
XHBhcmRccGxhaW5cZjFcZnMyMCBcaHRtbHJ0ZjAgXGh0bWxydGYge1xodG1scnRmMCBcbGkzNjAg
DQp7XCpcaHRtbHRhZzI0NCA8IS0tLS0+fVxsaW5lDQpJbmdlbmlvdXMhIEhvd2V2ZXIsIHRoaXMg
YXBwcm9hY2ggd291bGQgcmVhbGx5IGhhdmUgdG8gYmUgYSB2ZXJ5IGxhc3QsXGxpbmUNCmRlc3Bl
cmF0ZSwgcmVzb3J0LiBcbGluZQ0KXGxpbmUNCkhvdyBhcmUgeW91IGFibGUgdG8gaGF2ZSBhbnkg
dHJ1c3QgaW4gdGhlIHJlc3VsdHMgb2YgYSBwcm9ncmFtIHRoYXQgaXNcbGluZQ0Kc28gaW5jb21w
cmVoZW5zaWJsZT8gXGxpbmUNClxsaW5lDQogIFxodG1scnRmXHBhcn1caHRtbHJ0ZjANCg0Ke1wq
XGh0bWx0YWcxMzYgPC9wcmU+fVxodG1scnRmIH1caHRtbHJ0ZjAgDQp7XCpcaHRtbHRhZzAgXHBh
ciB9DQp7XCpcaHRtbHRhZzI0MCAgIH0NCntcKlxodG1sdGFnOTYgPGJsb2NrcXVvdGUgdHlwZT0i
Y2l0ZSI+fVxodG1scnRmIFxwYXINCntcaHRtbHJ0ZjAgDQp7XCpcaHRtbHRhZzAgXHBhciB9DQp7
XCpcaHRtbHRhZzI0MCAgICAgfQ0Ke1wqXGh0bWx0YWcxMjggPHByZSB3cmFwPSIiPn1caHRtbHJ0
ZiB7XHBhcmRccGxhaW5cZjFcZnMyMCBcaHRtbHJ0ZjAgXGh0bWxydGYge1xodG1scnRmMCBcbGk3
MjAgVG8gY29tcGxldGUgdGhlIGNpcmNsZSBvZiB0aGlzIGNvcnJlc3BvbmRlbmNlIHRoaXMgYWxn
b3JpdGhtIFxsaW5lDQooUmVtZXopIGlzIGRpc2N1c3NlZCBpbiBOdW1lcmljYWwgUmVjaXBlcy4g
VGhlIGF1dGhvcnMgXGxpbmUNCmFja25vd2xlZGdlIHRoYXQgdGhlIHJlc3VsdHMgYXJlICdPcHRp
bXVtJywgYnV0IHRoZXkgZG8gbm90IFxsaW5lDQpsaWtlIG9yIGluY2x1ZGUgaXQgYmVjYXVzZSBp
dCBpcyB0b28gY29tcGxpY2F0ZWQgdG8gY29kZS4gXGxpbmUNClRoZXkgYWR2b2NhdGUgYSBkaWZm
ZXJlbnQgc2ltcGxlciBhcHByb2FjaCB3aG9zZSByZXN1bHRzIGFyZSBcbGluZQ0KJ25lYXJseSBh
cyBnb29kJyAod2hpY2ggbWVhbnMgJ25vdCBhcyBnb29kJyEpLlxsaW5lDQpcbGluZQ0KICAgIFxo
dG1scnRmXHBhcn1caHRtbHJ0ZjANCg0Ke1wqXGh0bWx0YWcxMzYgPC9wcmU+fVxodG1scnRmIH1c
aHRtbHJ0ZjAgDQp7XCpcaHRtbHRhZzAgXHBhciB9DQp7XCpcaHRtbHRhZzI0MCAgIH0NCntcKlxo
dG1sdGFnMTA0IDwvYmxvY2txdW90ZT59XGh0bWxydGYgfVxwYXINClxodG1scnRmMCANCntcKlxo
dG1sdGFnMCBccGFyIH0NCntcKlxodG1sdGFnMjQwICAgfQ0Ke1wqXGh0bWx0YWcxMjggPHByZSB3
cmFwPSIiPn1caHRtbHJ0ZiB7XHBhcmRccGxhaW5cZjFcZnMyMCBcaHRtbHJ0ZjAgXGh0bWxydGYg
e1xodG1scnRmMCBcbGkzNjAgDQp7XCpcaHRtbHRhZzI0NCA8IS0tLS0+fVxsaW5lDQpBIHF1aWNr
IEdvb2dsZSBzZWFyY2ggcmV2ZWFsZWQgYW4gYWx0ZXJuYXRpdmUgaW1wbGVtZW50YXRpb24gKD8p
IG9mIHRoZVxsaW5lDQpSZW1leiBBbGdvcml0aG0gaW4gQy4gSSBtaWdodCBiZSBvbiB0aGUgd3Jv
bmcgdHJhY2sgYWx0b2dldGhlci4gS25vd2luZ1xsaW5lDQphYnNvbHV0ZWx5IG5vdGhpbmcgYXQg
YWxsIGFib3V0IHRoZSB1bmRlcmx5aW5nIHRoZW9yeSBJJ20gdW5hYmxlIHRvXGxpbmUNCmp1ZGdl
IHdoZXRoZXIgb3Igbm90IHRoaXMgaXMgYSBzb2x1dGlvbiB0byB0aGUgc2FtZSBwcm9ibGVtLCBv
ciB3aGV0aGVyXGxpbmUNCml0IGhhcyBhbnkgdXNlLiBcbGluZQ0KXGxpbmUNCkhvd2V2ZXIsIHRo
aXMgb25lIEkgd2FzIGFibGUgdG8gcmVhZCBhbmQgaGF2ZSBzb21lIGNvbmZpZGVuY2UgdGhhdCBJ
XGxpbmUNCndvdWxkIGJlIGFibGUgdG8gZGVidWcgaXQgaWYgbmVjZXNzYXJ5OiBcbGluZQ0KXGxp
bmUNCnt9DQp7XCpcaHRtbHRhZzg0IDxhIGNsYXNzPSJtb3otdHh0LWxpbmstZnJlZXRleHQiIGhy
ZWY9Imh0dHA6Ly93d3cuamFub3ZldHouY29tL2pha2UvcmVtZXovcmVtZXotMTk5ODA3MTEuemlw
Ij59XGh0bWxydGYge1xmaWVsZHtcKlxmbGRpbnN0e0hZUEVSTElOSyAiaHR0cDovL3d3dy5qYW5v
dmV0ei5jb20vamFrZS9yZW1lei9yZW1lei0xOTk4MDcxMS56aXAifX17XGZsZHJzbHRcY2YxXHVs
IFxodG1scnRmMCBodHRwOi8vd3d3Lmphbm92ZXR6LmNvbS9qYWtlL3JlbWV6L3JlbWV6LTE5OTgw
NzExLnppcFxodG1scnRmIH1caHRtbHJ0ZjAgXGh0bWxydGYgfVxodG1scnRmMCANCntcKlxodG1s
dGFnOTIgPC9hPn0gXGxpbmUNClxsaW5lDQpJdCB3b3VsZCBub3QgYmUgdG9vIGRpZmZpY3VsdCB0
byB0cmFuc2xhdGUgaXQgaW50byBPYmVyb24gLyBDUC4gXGxpbmUNClxsaW5lDQpIbW1tIC4uLiBt
YXliZSBhIEMgdG8gT2Jlcm9uIHRyYW5zbGF0b3Igc2hvdWxkIGJlIHRoZSBuZXh0IHByb2plY3Qg
Li4uXGxpbmUNClxsaW5lDQpDaHJpcyBCdXJyb3dzXGxpbmUNCkNGQiBTb2Z0d2FyZVxsaW5lDQp7
fQ0Ke1wqXGh0bWx0YWc4NCA8YSBjbGFzcz0ibW96LXR4dC1saW5rLWZyZWV0ZXh0IiBocmVmPSJo
dHRwOi8vd3d3LmNmYnNvZnR3YXJlLmNvbS9ncGNwIj59XGh0bWxydGYge1xmaWVsZHtcKlxmbGRp
bnN0e0hZUEVSTElOSyAiaHR0cDovL3d3dy5jZmJzb2Z0d2FyZS5jb20vZ3BjcCJ9fXtcZmxkcnNs
dFxjZjFcdWwgXGh0bWxydGYwIGh0dHA6Ly93d3cuY2Zic29mdHdhcmUuY29tL2dwY3BcaHRtbHJ0
ZiB9XGh0bWxydGYwIFxodG1scnRmIH1caHRtbHJ0ZjAgDQp7XCpcaHRtbHRhZzkyIDwvYT59XGxp
bmUNClxsaW5lDQotLS0gQmxhY2tCb3hcbGluZQ0KLS0tIHNlbmQgc3ViamVjdCBIRUxQIG9yIFVO
U1VCU0NSSUJFIHRvIHt9DQp7XCpcaHRtbHRhZzg0IDxhIGNsYXNzPSJtb3otdHh0LWxpbmstYWJi
cmV2aWF0ZWQiIGhyZWY9Im1haWx0bzpibGFja2JveEBvYmVyb24uY2giPn1caHRtbHJ0ZiB7XGZp
ZWxke1wqXGZsZGluc3R7SFlQRVJMSU5LICJtYWlsdG86YmxhY2tib3hAb2Jlcm9uLmNoIn19e1xm
bGRyc2x0XGNmMVx1bCBcaHRtbHJ0ZjAgYmxhY2tib3hAb2Jlcm9uLmNoXGh0bWxydGYgfVxodG1s
cnRmMCBcaHRtbHJ0ZiB9XGh0bWxydGYwIA0Ke1wqXGh0bWx0YWc5MiA8L2E+fVxsaW5lDQpcbGlu
ZQ0KXGxpbmUNCiAgXGh0bWxydGZccGFyfVxodG1scnRmMA0KDQp7XCpcaHRtbHRhZzEzNiA8L3By
ZT59XGh0bWxydGYgfVxodG1scnRmMCANCntcKlxodG1sdGFnMCBccGFyIH0NCntcKlxodG1sdGFn
MTA0IDwvYmxvY2txdW90ZT59XGh0bWxydGYgfVxwYXINClxodG1scnRmMCANCntcKlxodG1sdGFn
MCBccGFyIH0NCntcKlxodG1sdGFnNTggPC9ib2R5Pn0NCntcKlxodG1sdGFnMiBccGFyIH0NCntc
KlxodG1sdGFnMjcgPC9odG1sPn0NCntcKlxodG1sdGFnMyBccGFyIH0NCntcKlxodG1sfX0Ac2xh
dGUgaXQg
----boundary-LibPST-iamunique-1715848038_-_---
Received on Fri Oct 28 2005 - 18:30:59 UTC