I hit the hay pretty hard last night around 7:30, and woke up this morning at 9. 13.5 hours wasted of my weekend time!
Regardless, I've been shanghaied off to breakfast whether I like it or not, and have only a few scant moments to recount the notions from this morning.
Firstly, it occurred to me that once this whole thing's working and in place, that a graphic display of rules, result rules, and the whole range of results possible as three different PNG files would be useful, and a Perl/Tk interface wrapped around the tools that generate these images would be uber-handy. (Yes, I'm already working on metatools to affect these fuzzy systems, and I also realize just how pointless it will be if I cannot create the fuzzy system itself.)
Unfortunately, my mental wranglings with the system for calculating "curves" in this have led me to the conclusion that I'm going to have to perform three passes.
In the first pass, turn all firing rules into the equivalent triangles.
In the second, calculate all overlaps and add y values.
In the third, determine if any points are completely bounded within other points, and remove them if they are.
This should produce the final curve no matter how many inputs are coming in, which was what I'd hoped to implement in the future. I can't imagine any reason this won't work, so it's technically good news. It just comes with a huge pile of tedium (both in the coding and testing, because this thing's going to have plenty of places I can go wrong) and probably significant speed issues. (There's already lots of square-rooting that I'm doing in other places per input, so this is going to increase the math overhead significantly.)