diff options
| -rw-r--r-- | sql/serenitasdb.sql | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/sql/serenitasdb.sql b/sql/serenitasdb.sql index 2984725b..dcbf01a3 100644 --- a/sql/serenitasdb.sql +++ b/sql/serenitasdb.sql @@ -433,3 +433,17 @@ BEGIN END;
$$
LANGUAGE plpgsql;
+
+CREATE OR REPLACE function tranche_factor(attach smallint, detach smallint,
+ index_factor float, cumulativeloss float)
+RETURNS float AS $$
+DECLARE
+ newattach float;
+ newdetach float;
+
+BEGIN
+newattach:=LEAST(GREATEST((attach-100*cumulativeloss)/index_factor, 0), 1);
+newdetach:=LEAST(GREATEST((detach-100*cumulativeloss)/index_factor, 0), 1);
+RETURN (newdetach-newattach)/(detach-attach)*index_factor;
+END;
+$$ LANGUAGE plpgsql;
|
