Tipos de dados de alta precisão em Java

Olá! Minha primeira dúvida por aqui.

Estou com uma dúvida bem iniciante. Não sou da área de programação, mas estou programando algo… E queria saber se existe outro tipo de dados de alta precisão no Java além do BigDecimal. Estou com algumas expressões longas, e trabalhar com o BigDecimal está um pouco complicado. E difícil visualizar as operações, sem dizer que não dá para dar um “enter” e continuar na próxima linha. Para não ficar algo muito extenso, improvisei da maneira abaixo, mas mesmo assim…

				element = (ind_1.add(r_1.multiply(Gpoint1)).add(s_1.multiply(Gweight2)).add(t_1.multiply(Gpoint3)));
				element = element.add(rs_1.multiply(Gpoint1).multiply(Gpoint2)).add(rt_1.multiply(Gpoint1).multiply(Gpoint3));
				element = element.add(st_1.multiply(Gpoint2).multiply(Gpoint3)).add(rst_1.multiply(Gpoint1).multiply(Gpoint2).multiply(Gpoint3)); 
				element = element.add(r2_1.multiply(Gpoint1.pow(2))).add(s2_1.multiply(Gpoint2.pow(2))).add(t2_1.multiply(Gpoint3.pow(2))); 
				element = element.add(r2s_1.multiply(Gpoint1.pow(2)).multiply(Gpoint2)).add(r2t_1.multiply(Gpoint1.pow(2)).multiply(Gpoint3)); 
				element = element.add(rs2_1.multiply(Gpoint1).multiply(Gpoint2.pow(2))).add(s2t_1.multiply(Gpoint2.pow(2)).multiply(Gpoint1)); 
				element = element.add(rt2_1.multiply(Gpoint1).multiply(Gpoint3.pow(2))).add(st2_1.multiply(Gpoint2).multiply(Gpoint3.pow(2)));

Eu queria trabalhar como se trabalha com o tipo Decimal no vb.net.

Infelizmente, mesmo tendo outro tipo de dados, nao te ajudaria nesse caso. O problema é que nao há sobrecarga de operadores em Java, entao nao tem como deixar essa expressao mais curta.

Porém, nesse caso específico, acho que faria sentido quebrar essa expressao em partes. Me parece que mesmo usando notaçao matemática, ficaria meio longa para entendimento.

Pode postra aqui o equivalente desse código como uma expressao matemática, pra gente sugerir formas de simplificar o código?

Se você conhece algum desenvolvedor experiente, talvez valeria a pena você encomendar um interpretador para expressões matemáticas, aí você poderia entrar com Strings contendo suas expressões e esse interpretador poderia realizar o cálculo pra você.

Ou então verificar se não existe uma API Java do MatLab por exemplo.

Eu pensei em trabalhar com o Double ou Long, pois esses tipos funciona o (+, *, -, /, ^). Mas não sei, coisa minha querer alta precisão.

Ela é uma expressão um pouco longa mesmo. E uma quadratura de Gauss em 3 dimensões de uma função bem extensa mesmo. Esta expressão, com operadores ficaria assim:

     ind_1 + r_1 * Gpoint1 + s_1 * Gpoint2 + t_1 *Gpoint3 + rs_1
  • Gpoint1 * Gpoint2 + rt_1 * Gpoint1 * Gpoint3 + st_1 * Gpoint2 * Gpoint3
  • rst_1 * Gpoint1 * Gpoint2 * Gpoint3 + r2_1 Gpoint1 ^2 + s2_1 *
    Gpoint2 ^ 2 + t2_1 * Gpoint3 ^ 2 + r2s_1 * Gpoint1 ^ 2 * Gpoint2 + r2t_1 *
    Gpoint1 ^ 2 * Gpoint2 + rs2_1 * Gpoint1 * Gpoint2 ^ 2 + s2t_1 *
    Gpoint2 ^ 2 * Gpoint3 + rt2_1 * Gpoint1 * Gpoint3 ^ 2 + st2_1 * Gpoint2 *
    Gpoint3 ^ 2;

Deu erro na hora de editar a expressão, mas ela fica mais ou menos assim.

Essa API MATLAB Java é paga. Prefiro ficar com o .multiply e .add mesmo… Cansa um pouco mais na hora de escrever, mas funciona do mesmo jeito.