java bigdecimal third root

Java
public static long ITER = 1000;

  public static BigDecimal cuberoot(BigDecimal b) {
      // Specify a math context with 40 digits of precision.

      MathContext mc = new MathContext(40);

      BigDecimal x = new BigDecimal("1", mc);

      // Search for the cube root via the Newton-Raphson loop. Output each // successive iteration's value.

      for (int i = 0; i < ITER; i++) {
          x = x.subtract(
                  x.pow(3, mc)
                          .subtract(b, mc)
                          .divide(new BigDecimal("3", mc).multiply(
                                  x.pow(2, mc), mc), mc), mc);
      }
      return x;
  }
Source

Also in Java: