forked from GitHub/gf-core
improved performance of RelativeFre in compilation
This commit is contained in:
36
lib/resource-1.0/log.txt
Normal file
36
lib/resource-1.0/log.txt
Normal file
@@ -0,0 +1,36 @@
|
|||||||
|
11/5/2006
|
||||||
|
|
||||||
|
LangFre
|
||||||
|
|
||||||
|
373m, 55s, RelativeFre.gfc 43k
|
||||||
|
|
||||||
|
Just ag in RelVP:
|
||||||
|
|
||||||
|
120m, 40s, 38k
|
||||||
|
|
||||||
|
agr,bool instead of ragr:
|
||||||
|
|
||||||
|
319m, 52s, 42k
|
||||||
|
|
||||||
|
move outside table the case of bool:
|
||||||
|
|
||||||
|
221m , 45s, 50k
|
||||||
|
|
||||||
|
move outside whole record
|
||||||
|
|
||||||
|
213m, 46s, 49k CHOSEN 11/5
|
||||||
|
|
||||||
|
let-defined ag -> ag outside record
|
||||||
|
|
||||||
|
275m, 52s, 42m
|
||||||
|
|
||||||
|
let-defined ag outermost in branch
|
||||||
|
|
||||||
|
284m, 51s, 44m
|
||||||
|
|
||||||
|
ragr, outside record
|
||||||
|
|
||||||
|
487m, 62s, 76m
|
||||||
|
|
||||||
|
|
||||||
|
UseRCl TFut ASimul PPos (RelSlash IdRP (AdvSlash (SlashPrep (GenericCl (ComplV2A paint_V2A (UsePN paris_PN) (PositA full_A))) before_Prep) everywhere_Adv))
|
||||||
@@ -32,7 +32,7 @@ incomplete concrete CatRomance of Cat =
|
|||||||
-- Relative
|
-- Relative
|
||||||
|
|
||||||
RCl = {s : Agr => Tense => Anteriority => Polarity => Mood => Str} ;
|
RCl = {s : Agr => Tense => Anteriority => Polarity => Mood => Str} ;
|
||||||
RP = {s : Bool => AAgr => Case => Str ; a : RAgr} ;
|
RP = {s : Bool => AAgr => Case => Str ; a : AAgr ; hasAgr : Bool} ;
|
||||||
|
|
||||||
-- Verb
|
-- Verb
|
||||||
|
|
||||||
|
|||||||
@@ -9,29 +9,35 @@ incomplete concrete RelativeRomance of Relative =
|
|||||||
s = \\ag,t,a,p,m => pronSuch ! ag ++ conjThat ++ cl.s ! t ! a ! p ! m
|
s = \\ag,t,a,p,m => pronSuch ! ag ++ conjThat ++ cl.s ! t ! a ! p ! m
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
RelVP rp vp = {
|
--- more efficient to compile than case inside mkClause; see log.txt
|
||||||
s = \\ag =>
|
RelVP rp vp = case rp.hasAgr of {
|
||||||
(mkClause
|
True => {s = \\ag =>
|
||||||
(rp.s ! False ! {g = ag.g ; n = ag.n} ! Nom)
|
(mkClause
|
||||||
(case rp.a of {
|
(rp.s ! False ! {g = ag.g ; n = ag.n} ! Nom)
|
||||||
RNoAg => ag ;
|
{g = rp.a.g ; n = rp.a.n ; p = P3}
|
||||||
RAg a => a ** {p = P3}
|
vp).s} ;
|
||||||
})
|
False => {s = \\ag =>
|
||||||
vp).s
|
(mkClause
|
||||||
|
(rp.s ! False ! {g = ag.g ; n = ag.n} ! Nom)
|
||||||
|
ag
|
||||||
|
vp).s
|
||||||
|
}
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
RelSlash rp slash = {
|
RelSlash rp slash = {
|
||||||
s = \\ag,t,a,p,m =>
|
s = \\ag,t,a,p,m =>
|
||||||
slash.c2.s ++ rp.s ! False ! ag ! slash.c2.c ++ slash.s ! t ! a ! p ! m
|
slash.c2.s ++ rp.s ! False ! {g = ag.g ; n = ag.n} ! slash.c2.c ++ slash.s ! t ! a ! p ! m
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
FunRP p np rp = {
|
FunRP p np rp = {
|
||||||
s = \\_,a,c => np.s ! Ton Nom ++ p.s ++ rp.s ! True ! a ! p.c ;
|
s = \\_,a,c => np.s ! Ton Nom ++ p.s ++ rp.s ! True ! a ! p.c ;
|
||||||
a = RAg {g = np.a.g ; n = np.a.n}
|
a = {g = np.a.g ; n = np.a.n} ;
|
||||||
|
hasAgr = True
|
||||||
} ;
|
} ;
|
||||||
IdRP = {
|
IdRP = {
|
||||||
s = relPron ;
|
s = relPron ;
|
||||||
a = RNoAg
|
a = {g = Masc ; n = Sg} ;
|
||||||
|
hasAgr = False
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user