From what it looks like to me ... you aren't trying to do a neural network, are you? ;) Because that just looks like a typical activation function...
Is it "doable in Lisp itself"? Let's say: "kind of". In theory: totally. In practice: it will take an eternity to perform. So unless @johnsondavies has time for that, you will not have "real" floating point.
However: allow me to propose an alternative: How about a good look-up-table (perhaps a classic plist or alist) and extrapolation?
And then, you could simply treat "floats" as "large integers". That is, e.g. 1.234 can be expressed as 1234. Your table might have a value for 1.2 and a value for 1.3 (that is, a value for 1200 and a value for 1300). You call up these two values, determine their difference, multiply their difference with 34, divide their difference by 100, and - there you go. You could even just "threshold it", and say, just take the value for 1.2 (or 1200, here). You may make your table more fine-grained around 0, then, and more coarse towards the ends. As to the "ends" ... a slight advice: give a minimal and a maximum value which are NOT the asymptotes, so this way you do not end up with weird division-by-zero errors later on.