Artifact fb37b1776a11513631dd7fc2808898cb5981ca5389eb2cf957a28ed6bd481bbc:
- File
psl-1983/3-1/util/fast-evectors.sl
— part of check-in
[eb17ceb7f6]
at
2020-04-21 19:40:01
on branch master
— Add Reduce 3.0 to the historical section of the archive, and some more
files relating to version sof PSL from the early 1980s. Thanks are due to
Paul McJones and Nelson Beebe for these, as well as to all the original
authors.git-svn-id: https://svn.code.sf.net/p/reduce-algebra/code/historical@5328 2bfe0521-f11c-4a00-b80e-6202646ff360 (user: arthurcnorman@users.sourceforge.net, size: 1621) [annotate] [blame] [check-ins using] [more...]
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%% Fast-EVectors.sl -- Fast compiled EVector operations %%% Author: Cris Perdue %%% Date: 8 Apr 1983 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%% This is a facility so the user can generate code to access %%% evectors that runs fast. To use this facility, LOAD (don't %%% IMPORT) it at compiletime. It does an (on fast-evectors), %%% turning on the generation of faster code. The feature may be %%% turned off and on by the user. The affected evector %%% functions are EGetV, EPutV, and ESizeV. (compiletime (load if-system data-machine)) (put 'fast-evectors 'simpfg '((t (enable-fast-evectors)) (nil (disable-fast-evectors)))) (if_system VAX (de enable-fast-evectors () (DefList '((EGetV (lambda (V I) (EVecItm (EVecInf V) I))) (EPutV (lambda (V I X) (PutEVecItm (EVecInf V) I X))) (ESizeV (lambda (V) (EVecLen (EVecInf V))))) 'CMacro))) (if_system PDP10 % tags don't need to be stripped on the PDP10 (de enable-fast-evectors () (DefList '((EGetV (lambda (V I) (EVecItm V I))) (EPutV (lambda (V I X) (PutEVecItm V I X))) (ESizeV (lambda (V) (EVecLen V)))) 'CMacro))) (if_system MC68000 % tags don't need to be stripped on the 68000 (de enable-fast-evectors () (DefList '((EGetV (lambda (V I) (EVecItm V I))) (EPutV (lambda (V I X) (PutEVecItm V I X))) (ESizeV (lambda (V) (EVecLen V)))) 'CMacro))) (de disable-fast-evectors () (remprop 'egetv 'cmacro) (remprop 'eputv 'cmacro) (remprop 'esizev 'cmacro)) (loadtime (on fast-evectors))