From 6ee523f48f512554b806f62ce4c6df41178885b8 Mon Sep 17 00:00:00 2001 From: Slava Pestov Date: Fri, 5 Dec 2008 23:52:47 -0600 Subject: [PATCH] Eliminate conditional branch from -fast variant of TR: map; 5% improvement on reverse-complement --- basis/tr/tr.factor | 23 ++++++++++++++++++----- 1 file changed, 18 insertions(+), 5 deletions(-) diff --git a/basis/tr/tr.factor b/basis/tr/tr.factor index 30d0efb28b..66d8df7d44 100644 --- a/basis/tr/tr.factor +++ b/basis/tr/tr.factor @@ -1,13 +1,25 @@ ! Copyright (C) 2008 Slava Pestov. ! See http://factorcode.org/license.txt for BSD license. USING: byte-arrays strings sequences sequences.private -fry kernel words parser lexer assocs math.order ; +fry kernel words parser lexer assocs math math.order summary ; IN: tr +ERROR: bad-tr ; + +M: bad-tr summary + drop "TR: can only be used with ASCII characters" ; + : TR: scan parse-definition unclip-last [ unclip-last ] dip compute-tr + [ check-tr ] [ [ create-tr ] dip define-tr ] - [ [ "-fast" append create-tr ] dip define-fast-tr ] 2bi ; + [ [ "-fast" append create-tr ] dip define-fast-tr ] 2tri ; parsing