### The Maxima on-line user's manual

Algebra Calculator

#### Rootscontract

Function: rootscontract (<expr>) Converts products of roots into roots of products. For example, `rootscontract (sqrt(x)*y^(3/2))` yields `sqrt(x*y^3)`.

When `radexpand` is `true` and `domain` is `real`, `rootscontract` converts `abs` into `sqrt`, e.g., `rootscontract (abs(x)*sqrt(y))` yields `sqrt(x^2*y)`.

There is an option `rootsconmode` affecting `rootscontract` as follows:

Problem Value of Result of applying rootsconmode rootscontract

x^(1/2)*y^(3/2) false (x*y^3)^(1/2) x^(1/2)*y^(1/4) false x^(1/2)*y^(1/4) x^(1/2)*y^(1/4) true (x*y^(1/2))^(1/2) x^(1/2)*y^(1/3) true x^(1/2)*y^(1/3) x^(1/2)*y^(1/4) all (x^2*y)^(1/4) x^(1/2)*y^(1/3) all (x^3*y^2)^(1/6)

When `rootsconmode` is `false`, `rootscontract` contracts only with respect to rational number exponents whose denominators are the same. The key to the `rootsconmode: true` examples is simply that 2 divides into 4 but not into 3. `rootsconmode: all` involves taking the least common multiple of the denominators of the exponents.

`rootscontract` uses `ratsimp` in a manner similar to `logcontract`.

Examples:

```          (%i1) rootsconmode: false\$
(%i2) rootscontract (x^(1/2)*y^(3/2));
3
(%o2)                      sqrt(x y )
(%i3) rootscontract (x^(1/2)*y^(1/4));
1/4
(%o3)                     sqrt(x) y
(%i4) rootsconmode: true\$
(%i5) rootscontract (x^(1/2)*y^(1/4));
(%o5)                    sqrt(x sqrt(y))
(%i6) rootscontract (x^(1/2)*y^(1/3));
1/3
(%o6)                     sqrt(x) y
(%i7) rootsconmode: all\$
(%i8) rootscontract (x^(1/2)*y^(1/4));
2   1/4
(%o8)                       (x  y)
(%i9) rootscontract (x^(1/2)*y^(1/3));
3  2 1/6
(%o9)                      (x  y )
(%i10) rootsconmode: false\$
(%i11) rootscontract (sqrt(sqrt(x) + sqrt(1 + x))
*sqrt(sqrt(1 + x) - sqrt(x)));
(%o11)                          1
(%i12) rootsconmode: true\$
(%i13) rootscontract (sqrt(5+sqrt(5)) - 5^(1/4)*sqrt(1+sqrt(5)));
(%o13)                          0```

```(%o1)                                true
(%i2) ```

### Related Examples

##### rootscontract-sqrt

rootscontract(sqrt(8));

Calculate

##### rootscontract-sqrt

(((sqrt(3)+sqrt(6))^(...

rootscontract(%);

Calculate

##### rootscontract-sqrt

rootscontract(sqrt("x...

Calculate

##### rootscontract-sqrt

rootscontract(sqrt(2-...

Calculate

##### rootscontract

rootscontract(3*2^(3/...

Calculate

? rootscontract;

Calculate

##### rootscontract-sqrt

rootscontract(1/sqrt(...

Calculate

##### rootscontract-sqrt

(((sqrt(3)+sqrt(6))^(...

rootscontract(%);

Calculate

##### rootscontract-sqrt

rootscontract(sqrt(1/...

Calculate

##### rootscontract-sqrt

U1:rootscontract(sqrt...

U2:rootscontract(2*sq...

b:rootscontract(U1-U2);

Calculate