Missing translations for tutorial.ru.po (issue 3526)
Don't rely on bool(Relational) in the Piecewise solver.

Fixes issue 2961:
__nonzero__ method of Rel breaks solve of Piecewise functions
http://code.google.com/p/sympy/issues/detail?id=2961
Solution is valid iff Piecewise conditions are satisfied.
Optimized number of permutations of mappings in heurisch()
Reduced the number of permutations of mapping by not generating cases where mapping[-1] != x
While earlier the number of terms or components of a function being permuted were (say) n after these changes they have reduced to n-1, thus improving the time complexity

Optimized number of permutations of mappings in heurisch()

Inorer to reduce the number of permuations of mapping we can remove the unnecessary_tuples that is one of the form (x, x_)
and can append these to the end of all permuted mappings
renamed store_tuple to unnecessary_permutations
Changed integrate_primitive_polynomial from recursive to iterative

Solved the cases such as risch_integrate(log(x)**1001,x)

Earlier

        risch_integrate((log(x)+1)**1001,x)
        RuntimeError: maximum recursion depth exceeded while calling a Python object

Now

        risch_integrate((log(x)+1)**1001,x)
        gives answer within few seconds without any recursion limit getting exceeded
Implemented risch_integrate for trigonometric, inverse trigonometric and hyperbolic functions

Earlier:

        risch_integrate(sin(x),x)
        NotImplementedError

Now:

        risch_integrate(sin(x),x)
        -cos(x)
        integrate(sin(x),x,risch=True)
        -cos(x)

Added flag "rewrite_complex" to prevent calculation of every integral in terms of complex numbers (as we can get better results from other algorithms).
Conversions of trigonometric , inverse trigno , hyperbolic is implemented a s a fall back measure(if no algorithm gives anti-derivative then all the above functions would be converted into exponential or logarithmic components)

changed self.f.rewrite -> self.newf.rewrite
Add a test with a Piecewise result.
Factors() can handle S.Infinity.

Fixes issue 3807: simplify(tan(zoo) + oo) throws an exception
http://code.google.com/p/sympy/issues/detail?id=3807
Optimized number of permutations of mappings in heurisch()

This PR makes the "unnecesary_permutaion" aesthetically more comprehensive by using list comprehension instead of filter function. It also removes the "enter -> \n" after the starting of the for loop
stylistic changes added to make the code more readable
Merge pull request #1917 from cheatiiit/risch

Implemented risch_integrate for trigonometric, inverse trigonometric and hyperbolic functions
Merge pull request #1906 from cheatiiit/master

Optimized number of permutations of mappings in heurisch()
Merge pull request #1957 from cheatiiit/new1

Changed integrate_primitive_polynomial from recursive to iterative
Merge pull request #2025 from skirpichev/3526-tutorial-russian

Missing translations for tutorial.ru.po (issue 3526)
Merge pull request #2044 from jrioux/piecewise

Solve of Piecewise functions.
Merge pull request #2085 from jrioux/simplify

Factors() can handle S.Infinity.
sp edit for inducible