O'Mega is an algorithm for computing symbolically a maximally factorized representation for sets of many thousands of tree diagrams. The representation in form of a Directed Acyclical Graph (DAG) grows exponentially with the number of external particles instead of the factorial growth of the number of diagrams. The symbolic DAG can be constructed for any given set of Feynman rules, including Majorana Fermions. The complete Standard Model (SM) is available and an implementation of the MSSM and of other physics beyond the SM is being constructed and tested. The symbolic DAG can be translated easily to numerical code for any programming language. Currently, a Fortran90 backend is available and produces the fastest code available for helicity amplitudes for more than three particles in the final state. The numerical code can optionally be instrumented with consistency checks (Ward identities etc.) in order to test the numerical stability and the implementation of the Feynman rules. Finally, the poles of the amplitude can be calculated from the symbolic DAG and can be used to automatically set up adaptive multi channel sampling. With the adaptive multi channel library VAMP, efficiencies of several percent for unweighted event generation for six particles in the final state can be obtained automatically. O'Mega is implemented in the functional programming language Objective Caml (http://pauillac.inria.fr/ocaml/), a dialect of ML that is freely available for most computers. O'Mega demonstrates that the referential transparency of functional programming languages simplifies the manipulation of sophisticated data structures appearing naturally in the solution of physical problems, while retaining high performance through persistence.