Algorithms for solving Coupled Differential System.

This method is used for solving Coupled Differntial System.
Given a differntial field K of characterstic 0 and f1, f2, g1, g2
in K, it decides whether the system of equations
     /     \        /          \    /    \       /    \
    |  Dy1  |      |  f1   af2  |  |  y1  |     |  g1  |
    |       |  +   |            |  |      |  =  |      |
    |  Dy2  |      |  f2   f1   |  |  y2  |     |  g2  |
     \     /        \          /    \    /       \    /

Hence returning (y1, y2) if a solution exist, None otherwise
added test for cds_cancel_tan
Adds the special repo manually

Addition of hypertangent and exponential cases to parametric differntial equations

 added code exponential for to special denom

added code for tangent cases to special denom

added code for tangent cases to special denom

First attempt to solve the section 5.12

first attempt to solve section 5.12 and related problems

First Attempt to implement section 5.12 and related problems

added hypertangent test cases for param special

deleted binary file

as_real_image not working as expected

real_img function in prde.py

This commit enables us to evaluate real and imaginary parts of multivariate polynomials
Given numerator and denom of a function and the generator, it converts the poly into a dict with the degree of DE.t as the key
and the cofficients(corresponding to the degree of the variable) as the value. Inturn it seperates
the degrees with respect to mod 4

added code exponential for to special denom

added code for tangent cases to special denom

added code for tangent cases to special denom

First attempt to solve the section 5.12

first attempt to solve section 5.12 and related problems

First Attempt to implement section 5.12 and related problems

added hypertangent test cases for param special

Also solves the previous issues:
-> General code cleanup
(spaces after commas, spaces around operators, more even line wrapping in the docstring).
-> Seperates the real and imaginary parts to prevent param_log_deriv_heu faliure
(Avoids faliure due to complex extenions by using real amd imag parts seperately)
-> All unification error are avoided
(A major problem in previously failed commits)
->Add doc string to real_img
(Puts a description to the real_imag function in prde.py)

This PR solves the following:

 -> Avoids unneccesary coversions of polynomials to expressions
    which eliminates the cause of most of the unification errors
 -> Adds more tests to recognize_derivative in risch.py
Real_imag(in prde.py) fails for complex cofficients

The real_imag function written in prde.py is a helper function,
to get the real and imaginary part evaluated at sqrt(-1)
without actually evaluating it at sqrt(-1)

Though the function was initially written to support only rational
functions with rational or irrational differntial extension
monomial, I have tried to extend the concept to irrational functions as well

This PR imporves the real_imag such that we can also take
complex terms into consideration.
-> Earlier supported (t**2 - 1) (etc)
 where t is subsituted with sqrt(-1).
->  Now works for even (I*t**2 - 1)
Special_denom in rde.py

The special denom for hypertangent differntial extension
requires some updations in the code to workout the conditions
in parametric log deriv heu
Parametric log deriv heu would not support polynomial and rational
functions in the complex domain
Fixes the code in cde
Inclusion of rde.py methods in coupled_DE_System(in cds.py)
Tests Addition: in test_cds.py

Checks if there are some errors in the statements in coupled_DE_System
Used rde.py to complete the method
Fixes nit-picks in real_imag and cds
Tests Case Addition: real_imag(in prde.py)

Improvises the code in real_imag which is helper function,
to get the real and imaginary part of a rational function
evaluated at sqrt(-1) without actually evaluating it at sqrt(-1)

Have extended the concept to irrational functions as well
Earlier worked for t**2 + 1 (etc)
Now enabled to take cases such as I*t**2 + 1 also into
consideration
Removes the merge conflicts

Conflicts:

	sympy/integrals/cds.py
Fixes in Cancel Exp and coupled_DE_System in cds.py
Test Indication in CDS(test/test_cds.py):

This PR adds the test to check for the nitpicks
in the coupled differntial system
Parametric Log Derivative(Structure Theorem)

This commit includes the structure theorem to solve the parametric log
log derivative problem

This problem arises from determining wheteher elements of K(\theta)
are log-derivative of elements of K(\theta) or log derivative of K(\theta) -radical

Though we have a heuristic for the log derivative problem but not a
complete solution, heuristics would fail for most of the cases that are
required to be tested in integrate_hypertangent (added in risch.py),
this would involve cases with complex cofficients

This commit is still in progress, further Additions and TODO are:
-> Adding T_k and T_args to take tangent monomials into consideration
-> Replacing exponential powered to I(sqrt(-1)) with appropriate trignometric
terms
-> Working out the non rational cofficients

This commit still need improvisations, Still not in a working condition
And that is why the coupled differntial system is returning None for most
of the cases
Commit Status - Still in progress
Coupled Differntial System - Cancel Primitive

This PR improvises the code in the coupled differntial system file
cds.py for cancel primitive cases

cds_cancel_prim -> Is the method which would take care of the cancellation
cases for primitive differential extensions.

The current code would seem to completely fail for hypertangent cases
as we have no support for T_K and A_K in prde.py
I have added the tests on which i have tried running the code
Though the outputs are not as expected(which tend to mostly fail because
of parametric log derivative problem returning None) but the code has been
tested interms of the implmentation wrt to cds.py
Improvments forth-coming commits
Test Cases for coupled differntial system

Here i have just added the tests on which i have tried the correctness
and error in the code for cds. Tests are just to check the valid working
of cancel cases for primitive, hypertangent and hyperexponential
differntial extension. It also add the L_K and E_k to the DE,
 which would be required to suffice the conditions of the structure
theorem

The current code would seem to completely fail for hypertangent cases
as we have no support for T_K and A_K in prde.py
I have added the tests on which i have tried running the code
Though the outputs are not as expected(which tend to mostly fail because
of parametric log derivative problem returning None) but the code has been
tested interms of the implmentation wrt to cds.py
Improvments forth-coming commits
Test-Run : Run sympy/utilities