equat

equat é o package que contém as classes que implementam expressões matemáticas como grafos de árvores (conforme descrito aqui). Admito que a escolha do nome não parece apropriada, visto que esta versão do package não pode ser usada para resolver equações matemáticas, mas fica aberta a possibilidade para o futuro. As classes deste package são:


equation.class

Interface implementada por todos os nós da árvore. Consiste de dois métodos:

eqUnaria.class

Classe base de todas as operações matemáticas que possuem apenas um parâmetro. Implementa a interface equation. Cada nó deste tipo possui apenas um filho, representando o parâmetro da operação. As seguintes classes herdam esta classe:

ClasseOperação
eqCeil.classRetorna o menor inteiro maior ou igual ao parâmetro
eqCos.classCalcula o cosseno do parâmetro (em radianos)
eqExp.classCalcula e (número de Euler = 2.71828...) elevado à potência do parâmetro, conforme as convenções do método Math.exp()
eqFabs.classCalcula o módulo do parâmetro
eqFloor.classRetorna o menor inteiro menor ou igual ao parâmetro
eqInv.classRetorna o parâmetro com o sinal invertido
eqLog.classCalcula o logaritmo natural do parâmetro, conforme as convenções do método Math.log()
eqNot.classNOT lógico. Se o parâmetro for um número não-nulo, retorna zero. Caso contrário, retorna um número não-nulo
eqRand.classRetorna um número aleatório uniformemente distribuído no intervalo [0, parâmetro[, gerado pelo método Rand.nextDouble()
eqRound.classRetorna o número inteiro mais próximo do parâmetro
eqSin.classCalcula o cosseno do parâmetro (em radianos)
eqSqrt.classCalcula a raiz quadrada do parâmetro


eqBinaria.class

Classe base de todas as operações matemáticas que possuem dois parâmetros. Implementa a interface equation. Cada nó deste tipo possui dois filhos, representando os parâmetros da operação. As seguintes classes herdam esta classe:

ClasseOperação
eqAnd.classAND lógico. Se os dois parâmetros forem números não-nulos, retorna um número não-nulo. Caso contrário, retorna zero
eqDiferente.classRetorna um número não-nulo, se os dois parâmetros forem números diferentes, ou zero, em caso contrário
eqDiv.classCalcula o resultado da divisão do primeiro parâmetro (filho da esquerda) pelo segundo parâmetro, seguindo as convenções de divisão do Java
eqIgual.classRetorna um número não-nulo, se os dois parâmetros forem números iguais, ou zero, em caso contrário
eqMult.classCalcula o resultado da multiplicação dos dois parâmetros
eqMaior.classRetorna um número não-nulo, se o primeiro parâmetro (filho da esquerda) for estritamente maior que o segundo parâmetro, ou zero, em caso contrário
eqMaiorIgual.classRetorna um número não-nulo, se o primeiro parâmetro (filho da esquerda) for maior ou igual que o segundo parâmetro, ou zero, em caso contrário
eqMenor.classRetorna um número não-nulo, se o primeiro parâmetro (filho da esquerda) for estritamente menor que o segundo parâmetro, ou zero, em caso contrário
eqMenorIgual.classRetorna um número não-nulo, se o primeiro parâmetro (filho da esquerda) for menor ou igual que o segundo parâmetro, ou zero, em caso contrário
eqMod.classCalcula o resto da divisão do primeiro parâmetro (filho da esquerda) pelo segundo parâmetro, seguindo as convenções de divisão do Java
eqNrand.classRetorna um número aleatório, cuja distribuição é uma Gaussiana de média igual ao primeiro parâmetro (filho da esquerda) e desvio-padrão igual so segundo parâmetro
eqOr.classOR lógico. Se pelo menos um dos dois parâmetros for não-nulo, retorna um número não-nulo. Caso contrário, retorna zero
eqPow.classCalcula o valor do primeiro argumento (filho da esquerda) elevado à potência do segundo argumento, de acordo com as convenções do método Math.pow()
eqSoma.classCalcula a soma dos dois argumentos
eqSub.classCalcula o resultado da subtração do primeiro argumento (filho da esquerda) pelo segundo argumento


eqTernaria.class

Classe base de todas as operações matemáticas que possuem apenas um parâmetro. Implementa a interface equation. Cada nó deste tipo possui três filho, representando os parâmetros da operação. Nesta versão do package, apenas uma classe herda esta classe:

ClasseOperação
eqIf.classOperação lógica IF. Se o valor do primeiro parâmetro (filho da esquerda) for não-nulo, retorna o valor do segundo parâmetro (filho do meio). Caso contrário, retorna o valor do terceiro parâmetro


Folhas da árvore

As folhas das árvores de expressões, por não possuirem filhos, não realizam nenhuma operação matemática, e servem para armazenar valores numéricos. Estas classes implementam a interface equation.class.

ClasseDescrição
eqNum.classArmazena um número. O resultado da avaliação deste nó é o próprio valor que armazena
eqVar.classRepresenta uma variável de uma função ou uma literal. Herda a classe eqNum.java, ou seja, também armazena valores numéricos, mas também armazena uma String que identifica seu nome