Tipos nativos

A Pseudo-IDE tem sete tipos de dados primitivos e sete tipos de objetos. Funções de biblioteca que retornam coleções usam sempre os tipos objeto nativos — nunca arrays ou objetos JS puros.

Tipos primitivos

TipoDescriçãoExemplo
inteiroNúmero inteiro de 64 bitsinteiro x = 42
realPonto flutuante IEEE 754real pi = 3.14
numeroQualquer número (inteiro ou real)usado em parâmetros
booleanoverdadeiro ou falsobooleano ok = verdadeiro
caracterCadeia de textocaracter s = "olá"
vazioAusência de valor (null)retorno vazio
indefinidoVariável não atribuídam.eIndefinido(x)

Tipos objeto

TipoAcessoCriaçãoDescrição
Listax[i] ou x.obter(i)m.lista(...)Lista ordenada e mutável. Índice começa em 0.
Mapax.obter(chave)m.mapa()Dicionário chave→valor.
Conjuntox.tem(v)m.conjunto()Coleção de valores únicos.
Vetorx[i] ou x.obter(i)m.vetor([...])Vetor N-dimensional de números.
Matrizx.obter(i,j)m.matriz([[...]])Matriz M×N de números.
Caractervia métodosm.caracter(v)Objeto string com métodos de texto.
Numerovia métodosm.numero(v)Wrapper numérico com fatoração e arredondamento.

Operador de range a...b

Cria um array de inteiros de a até b inclusive. Passo automático (+1 ou −1). Ideal para construir listas/conjuntos/vetores dinamicamente.

lista(1...5) // Lista [1, 2, 3, 4, 5] conjunto(1...3) // Conjunto {1, 2, 3} vetor(0...3) // Vetor [0, 1, 2, 3] 5...1 // [5, 4, 3, 2, 1] — descende automaticamente

Spread nativo

...arr funciona como spread JS nativo dentro de arrays literais e chamadas de função.

super a = [1, 2, 3]; super b = [...a, 4, 5]; // [1, 2, 3, 4, 5]

Funções globais

Disponíveis sem importação em qualquer programa Pseudo.

imprima(...args: qualquer) → vazio
Escreve um ou mais valores no console de saída, separados por espaço.
imprima("olá", 42, verdadeiro); // olá 42 true
leia(mensagem?: caracter) → Promise<caracter>
Exibe um prompt de entrada e retorna o texto digitado pelo usuário. É async — use aguardar ou em contexto assíncrono (injetado automaticamente pelo compilador).
caracter nome = leia("Seu nome:"); imprima(f"Olá, {nome}!");
intervalo(fim: numero) → Lista
Retorna uma Lista de números de 0 até fim-1 (exclusivo). Análogo ao range() do Python.
ParâmetroTipoDescrição
fimnumeroLimite superior (exclusivo). Passo = 1 se positivo, −1 se negativo.
inicio opcnumeroValor inicial. Quando fornecido muda a assinatura para intervalo(inicio, fim).
passo opcnumeroIncremento (pode ser decimal ou negativo). Não pode ser zero.
Lança erro se passo = 0.
imprima(intervalo(5)); // Lista [0,1,2,3,4] imprima(intervalo(2, 8)); // Lista [2,3,4,5,6,7] imprima(intervalo(0, 1, 0.25)); // Lista [0, 0.25, 0.5, 0.75] para i em intervalo(10) faça imprima(i * i); fim

Métodos de classe

Cada tipo objeto tem métodos acessados via ponto. Os construtores estão em metodos.

Lista

Acesso por índice: lista[i] (atalho) ou lista.obter(i). Índice começa em 0.

MétodoRetornoDescrição
adicionar(item)ListaInsere no final. Retorna this para encadeamento.
remover(item)ListaRemove primeira ocorrência de item.
obter(i: inteiro)qualquerElemento no índice i. Lança erro se fora do intervalo.
tamanho()inteiroNúmero de elementos.
retirar(indice: inteiro)ListaRemove o elemento naquele índice. Lança erro se fora do intervalo.
ordenar(modo?: inteiro)ListaOrdena in-place. 0 = crescente (padrão), 1 = decrescente.
organizar(comparador)ListaOrdena in-place usando comparador(a, b), que deve retornar -1, 0 ou 1. Suporta funções async.
inverter()ListaInverte a ordem in-place.
permutar(i: inteiro, j: inteiro)ListaTroca os valores das posições i e j in-place.
sublista(comeco: inteiro, fim: inteiro)ListaNova Lista com o intervalo fechado [comeco, fim] — o elemento em fim é incluído.
primeiro()qualquerPrimeiro elemento. Lança erro se a lista estiver vazia.
ultimo()qualquerÚltimo elemento. Lança erro se a lista estiver vazia.
contem(item)booleanoVerifica se item está na lista.
contar(elemento)inteiroQuantas vezes elemento aparece. Retorna 0 se ausente.
indiceDe(elemento)inteiroÍndice da primeira ocorrência, ou -1 se ausente.
juntar(separador, autoEspacar?: booleano)caracterUne os elementos com separador. Com autoEspacar = verdadeiro, insere espaços ao redor: "a - b - c".
transformar(fn)ListaAplica fn(v) a cada elemento. Suporta funções async.
filtrar(predicado)ListaMantém elementos onde predicado(v) é verdadeiro.
reduzir(fn, inicial?)qualquerAcumula resultado chamando fn(acum, v). inicial é opcional.
percorrer(fn)vazioChama fn(v, i) para cada elemento (para efeitos colaterais).
clonar()ListaCópia profunda — o clone não compartilha referência com o original.
limpar()ListaRemove todos os elementos in-place.

Mapa

MétodoRetornoDescrição
definir(chave, valor)MapaInsere ou atualiza entrada. Chave pode ser qualquer tipo.
obter(chave)qualquerValor associado à chave, ou indefinido se ausente.
remover(chave)MapaRemove a entrada com aquela chave.
tem(chave)booleanoVerifica existência da chave.
clonar()MapaCópia profunda — o clone não compartilha referência com o original.
limpar()MapaRemove todas as entradas in-place.

Conjunto

MétodoRetornoDescrição
adicionar(v)ConjuntoInsere valor (ignorado se já existir).
remover(v)ConjuntoRemove o valor.
tem(v)booleanoVerifica pertinência.
tamanho()inteiroNúmero de elementos únicos.
uniao(outro: Conjunto)ConjuntoRetorna A ∪ B como novo Conjunto.
intersecao(outro: Conjunto)ConjuntoRetorna A ∩ B como novo Conjunto.
diferenca(outro: Conjunto)ConjuntoRetorna A − B como novo Conjunto.
produtoCartesiano(outro: Conjunto)ConjuntoRetorna A × B: um Conjunto de Listas [a, b]. Limite de 250 000 pares.
partes()ConjuntoConjunto das partes P(A): um Conjunto com todos os 2ⁿ subconjuntos. Máximo de 16 elementos.
clonar()ConjuntoCópia profunda — o clone não compartilha referência com o original.
limpar()ConjuntoRemove todos os elementos in-place.

Vetor

Acesso por índice: v[i] (atalho) ou v.obter(i).

MétodoRetornoDescrição
dimensao()inteiroNúmero de componentes.
obter(i: inteiro)realComponente na posição i.
soma(outro: Vetor)VetorSoma componente a componente.
subtrair(outro: Vetor)VetorSubtração componente a componente.
escalar(k: numero)VetorMultiplica todas as componentes por k.
ponto(outro: Vetor)realProduto interno (dot product).
norma()realNorma euclidiana (comprimento).
normalizar()VetorRetorna vetor unitário. Lança erro se norma = 0.
clonar()VetorCópia independente do original.
limpar()VetorZera todas as componentes in-place, preservando a dimensão.

Matriz

Método / PropRetornoDescrição
obter(i, j)realElemento na linha i, coluna j (base 0).
definir(linha: inteiro, coluna: inteiro, valor: numero)MatrizAtribui valor à posição (linha, coluna) in-place. Lança erro se fora do intervalo.
soma(outra: Matriz)MatrizSoma elemento a elemento.
mult(outro)Matriz | VetorMultiplicação: Matriz×Matriz, Matriz×Vetor ou Matriz×escalar.
transposta()MatrizMatriz transposta.
determinante()realDeterminante por eliminação de Gauss. Exige matriz quadrada.
clonar()MatrizCópia independente do original.
limpar()MatrizZera todos os elementos in-place, preservando as dimensões.
.linhasinteiroNúmero de linhas.
.colunasinteiroNúmero de colunas.

Caracter

MétodoRetornoDescrição
maiusculo()CaracterConverte para maiúsculas.
minusculo()CaracterConverte para minúsculas.
capitalizar()CaracterPrimeira letra maiúscula, resto minúscula.
contem(s)booleanoVerifica se o texto contém s.
tamanho()inteiroNúmero de caracteres.
inverter()CaracterTexto invertido.
aparar()CaracterRemove espaços no início e no fim.
mesclar(s)CaracterConcatena com s.
normalizar()caracterForma canônica para comparação: minúsculas, sem acentos, espaços aparados e colapsados. Devolve texto puro, não um Caracter, para que a.normalizar() == b.normalizar() funcione.
dividir(separador)ListaQuebra o texto em cada ocorrência de separador e retorna uma Lista de textos. Com "", separa caractere a caractere.
clonar()CaracterCópia independente do original.
limpar()CaracterEsvazia o texto in-place.

Numero

MétodoRetornoDescrição
sinal()inteiro−1 (negativo), 0 (zero) ou 1 (positivo).
int()inteiroTrunca para inteiro (remove parte decimal).
re()realRetorna o valor numérico primitivo.
decimal(n: inteiro)realArredonda para n casas decimais.
fatorar()ListaLista de fatores primos. Ex: 12 → [2,2,3].
ePar()booleanoverdadeiro se for par. Exige inteiro — use .int() antes se necessário.
ePrimo()booleanoverdadeiro se for primo. Exige inteiro; valores < 2 retornam falso.
clonar()NumeroCópia independente do original.
limpar()NumeroZera o valor in-place.

mat — Matemática

importar mat como m;

Funções matemáticas puras. Todas as entradas e saídas são primitivos (numero), exceto m.linspace() que retorna Lista. Não depende de nenhuma outra biblioteca.

Constantes

ConstanteValorDescrição
m.PI / m.pi3.14159…π
m.e / m.E2.71828…Número de Euler
m.Infinito+∞Infinito positivo
m.NegInfinito−∞Infinito negativo

Arredondamento e conversão

m.abs(x: numero) → numero
Valor absoluto |x|.
m.arred(x: numero) → inteiro
Arredondamento para o inteiro mais próximo.
m.piso(x: numero) → inteiro
Piso ⌊x⌋ — maior inteiro ≤ x.
m.teto(x: numero) → inteiro
Teto ⌈x⌉ — menor inteiro ≥ x.
m.truncar(x: numero) → inteiro
Remove a parte decimal (arredonda em direção a zero).
m.max(a: numero, b: numero) → numero
Retorna o maior entre a e b.
m.min(a: numero, b: numero) → numero
Retorna o menor entre a e b.
m.hipot(...ns: numero) → real
√(n₁² + n₂² + …) — norma euclidiana de qualquer número de valores.
m.grauParaRad(g: numero) → real
Converte graus → radianos (g × π/180).
m.radParaGrau(r: numero) → real
Converte radianos → graus (r × 180/π).

Trigonometria (entrada em radianos)

m.sen / m.cos / m.tan(x: numero) → real
Seno, cosseno, tangente.
m.arcsen(x: numero) → real
Arcosseno em radianos. Domínio: [−1, 1]. Lança erro fora do domínio.
m.arccos(x: numero) → real
Arcocosseno em radianos. Domínio: [−1, 1].
m.arctan(x: numero) → real
Arctangente em (−π/2, π/2).
m.arctan2(y: numero, x: numero) → real
Ângulo do vetor (x,y) em (−π, π]. Preserva quadrante.
m.senh / m.cosh / m.tanh(x) → real
Funções hiperbólicas.
m.arcsenh / m.arccosh / m.arctanh(x) → real
Inversas hiperbólicas. arccosh: domínio [1,∞); arctanh: domínio (−1,1).

Logaritmos e exponencial

m.ln(x: numero) → real
Logaritmo natural. Domínio: x > 0.
m.log2 / m.log10(x) → real
Logaritmo em base 2 e base 10.
m.log(x: numero, base: numero) → real
Logaritmo em base arbitrária. base deve ser > 0 e ≠ 1.

Aleatoriedade e séries

m.aleatorio(min: inteiro, max: inteiro) → inteiro
Inteiro aleatório uniforme no intervalo [min, max]. Lança erro se min > max.
m.somatorio(fn: funcao, min: numero, max: numero) → real
Calcula Σ fn(i) para i = min até max (inclusivo).
m.produtorio(fn: funcao, min: numero, max: numero) → real
Calcula Π fn(i) para i = min até max (inclusivo).
m.linspace(inicio: numero, fim: numero, n: inteiro) → Lista
Retorna uma Lista com n valores igualmente espaçados de inicio a fim (ambos incluídos). Análogo ao numpy.linspace.
Lança erro se n < 2.
m.linspace(0, 1, 5) // Lista [0, 0.25, 0.5, 0.75, 1.0] m.linspace(0, 360, 7) // Lista [0, 60, 120, 180, 240, 300, 360]

metodos — Construtores e Tipos

importar metodos como m; // Importação parcial também funciona: importar metodos.lista como li; importar metodos.vetor como vc;

Construtores de tipos objeto e verificadores de tipo. Não depende de nenhuma outra biblioteca.

Construtores de coleção

m.lista(...args | array | a...b) → Lista
Cria uma Lista. Aceita: múltiplos argumentos; um único array JS / Lista / Conjunto; ou um range a...b.
m.lista(1, 2, 3) // Lista [1,2,3] — elementos individuais m.lista(1...5) // Lista [1,2,3,4,5] — range m.lista(outralista) // cópia da lista
m.conjunto(...args | array | a...b) → Conjunto
Cria um Conjunto. Aceita mesmas formas que m.lista. Duplicatas são ignoradas.
m.conjunto(1...5) // Conjunto {1,2,3,4,5}
m.mapa(array? | a...b) → Mapa
Cria um Mapa vazio. Se um array/range for fornecido, cria mapa de índice→valor: {0: arr[0], 1: arr[1], …}.
m.mapa() // Mapa vazio m.mapa(1...3) // Mapa {0:1, 1:2, 2:3}

Construtores numéricos e vetoriais

m.vetor(componentes: Lista | super | ...numero) → Vetor
Cria um Vetor N-dimensional. Todos os componentes devem ser números.
m.vetor([1, 2, 3]) // de array m.vetor(1...4) // de range → Vetor [1,2,3,4]
m.matriz(linhas: super[][] | Lista) → Matriz
Cria uma Matriz a partir de um array de arrays (linhas × colunas). Todos os valores devem ser números.
m.matriz([[1,2],[3,4]]) // Matriz 2×2
m.numero(v: numero) → Numero
Cria um Numero com métodos .sinal(), .fatorar(), etc.
m.caracter(v: caracter) → Caracter
Cria um Caracter com métodos de texto.
m.inteiro(v: qualquer) → inteiro
Converte para inteiro. Lança erro se conversão falhar.
m.real(v: qualquer) → real
Converte para real. Lança erro se conversão falhar.

Verificadores de tipo (todos retornam booleano)

Todos os verificadores abaixo aceitam qualquer como entrada e retornam booleano.

FunçãoVerdadeiro quando…
m.eNumero(v)v é número (inteiro ou real)
m.eInteiro(v)v é inteiro
m.eReal(v)v é real (não inteiro)
m.eTexto(v)v é string ou Caracter
m.eBooleano(v)v é booleano
m.eLista(v)v é instância de Lista
m.eMapa(v)v é instância de Mapa
m.eConjunto(v)v é instância de Conjunto
m.eVetor(v)v é instância de Vetor
m.eMatriz(v)v é instância de Matriz
m.eVazio(v)v é null (vazio)
m.eIndefinido(v)v é undefined

calculo — Cálculo Diferencial e Integral

importar calculo como c;

Operações numéricas de cálculo. Funções que recebem funcao suportam funções async (retornam Promise). Não depende de nenhuma outra biblioteca.

c.limite(fn: funcao, ponto: numero) → real
Limite numérico de fn quando x → ponto (aproximação bilateral com h=10⁻⁷).
c.derivada(fn: funcao, ponto: numero, ordem?: inteiro [1–4]) → real
Derivada numérica de ordem ordem (padrão: 1). Usa diferenças finitas centradas.
c.integral(fn: funcao, a: numero, b: numero) → real
Integral definida ∫ₐᵇ fn(x) dx pela regra de Simpson.
c.taylor(fn: funcao, a: numero, x: numero, n: inteiro [0–4]) → real
Aproximação por série de Taylor de grau n em torno de a, avaliada em x.
c.gamma(x: numero) → real
Função Gamma Γ(x). Generalização do fatorial: Γ(n) = (n−1)!
c.digamma(x: numero) → real
Função Digamma ψ(x) = Γ'(x)/Γ(x).
c.zeta(s: numero) → real
Função Zeta de Riemann. Requer s > 1.
c.phi(n: inteiro) → inteiro
Função totiente de Euler φ(n) — quantos inteiros em [1,n] são coprimos com n.
c.lambertW(x: numero) → real
Função W de Lambert: solução de w·eʷ = x. Domínio: x ≥ −1/e.

estatistica — Combinatória e Estatística

importar estatistica como e;

Todas as funções estatísticas recebem Lista de números e retornam primitivos (exceto moda). Não depende de nenhuma outra biblioteca.

e.fatorial(n: inteiro [0–170]) → inteiro
n! Lança erro para n negativo ou n > 170.
e.combinacao(n: inteiro, k: inteiro) → inteiro
Combinação C(n,k) = n! / (k!(n−k)!).
e.arranjo(n: inteiro, k: inteiro) → inteiro
Arranjo P(n,k) = n! / (n−k)!.
e.media(l: Lista) → real
Média aritmética. Lista deve ser não-vazia e conter apenas números.
e.mediana(l: Lista) → real
Mediana (medida central sem influência de outliers).
e.moda(l: Lista) → Lista
Retorna uma Lista com todos os valores de maior frequência (pode ter múltiplas modas).
e.variancia(l: Lista) → real
Variância populacional σ².
e.desvioPadrao(l: Lista) → real
Desvio padrão populacional σ = √(variância).

tabular — Exibição e Tabelas

importar tabular como t;

Exibe tabelas e visualizações no console. Aceita tanto Lista quanto arrays JS como parâmetros de coleção. Não depende de nenhuma outra biblioteca.

t.separador() → vazio
Insere uma linha horizontal tracejada no console de saída.
t.tabela(cabecalhos: Lista | super, linhas: Lista | super) → vazio
Renderiza uma tabela HTML. cabecalhos é uma lista de textos. linhas é uma lista de listas (cada sublista = uma linha da tabela).
t.progresso(valor: numero, max: numero) → vazio
Exibe barra de progresso proporcional a valor/max.
t.tabelaVerdade(expressoes: Lista | super | caracter, variaveis: Lista | super, mostrarInter?: booleano) → vazio
Gera tabela verdade para as expressões lógicas. Máximo 8 variáveis. mostrarInter exibe colunas intermediárias.

tempo — Temporização e Performance

importar tempo como tp;

Medição de tempo de execução. Não depende de nenhuma outra biblioteca.

tp.agora() → real
Timestamp atual em milissegundos (desde epoch Unix). Alias: tp.milisegundos().
tp.medirExecucao(fn: funcao, ...args) → qualquer
Executa fn(...args), exibe o tempo gasto no console e retorna o resultado da função. Suporta funções async.
tp.testeStress(fn: funcao(n), n_max: inteiro) → vazio
Executa fn(n) para n = 10, 100, 1000, … até n_max e exibe tabela de tempo.

graficos — Visualização

importar graficos como g;

Renderiza gráficos na saída. Todas as funções retornam vazio. Aceita Lista, arrays JS e objetos de configuração (como Mapa ou objeto JS). Depende do PlotterAPI (carregado automaticamente).

g.plotar(dados: funcao | Lista | super, config?: Mapa | {tipo, titulo, intervalo, largura, altura}) → vazio
Função geral de plotagem. Tipo automático baseado em dados. config.tipo pode ser "linha", "barra", "dispersao" ou "3d". config.intervalo: [xMin, xMax].
g.grafico(funcoes: funcao | Lista | super, opcoes?: Mapa | {titulo, intervalo, largura, altura, eixoX, eixoY}) → vazio
Gráfico composito: aceita funções, pontos [x,y] ou objetos {x,y,rotulo} em uma única lista mista.
g.dispersao(pontos: Lista | super, opcoes?) → vazio
Gráfico de dispersão (scatter). pontos é lista de pares [x,y].
g.superficie3D(fn: funcao(x,y), opcoes?) → vazio
Superfície 3D z = fn(x,y). opcoes.intervalo controla o range em X e Y.
g.conica(A,B,C,D,E,F: numero, opcoes?) → vazio
Plota a cônica implícita Ax² + Bxy + Cy² + Dx + Ey + F = 0.
g.relacao(rel: Lista[funcao] | {x,y,t}, opcoes?) → vazio
Curva implícita multi-ramo ou paramétrica. Para paramétrica: {x: fn(t), y: fn(t), t: [tMin, tMax]}.
g.anotado(f: funcao, marcadores: Lista | super, opcoes?) → vazio
Plota f com marcadores anotados. Marcadores: [x] (raiz), {root: x}, {x,y} (ponto manual).

probabilidade — Probabilidade e Aleatoriedade

importar probabilidade como p;

Amostragem e simulação estocástica. Não depende de nenhuma outra biblioteca.

p.uniforme(min: real, max: real) → real
Real aleatório uniforme em [min, max].
p.aleatorioInteiro(min: inteiro, max: inteiro) → inteiro
Inteiro aleatório uniforme em [min, max].
p.rolarDados(quantidade: inteiro, faces: inteiro) → Lista
Simula quantidade lançamentos de dado de faces lados. Retorna Lista de resultados.
p.embaralhar(lista: Lista) → Lista
Embaralhamento Fisher-Yates. Retorna uma nova Lista — a original nunca é modificada.
p.sortearComPesos(itens: Lista | super, pesos: Lista | super) → qualquer
Amostragem com pesos proporcionais. Retorna um item escolhido aleatoriamente.
p.monteCarlo(fn: funcao(x), n: inteiro) → real
Calcula ∫₀¹ fn(x) dx via simulação Monte Carlo com n amostras. fn(x) deve retornar booleano (se ponto está na região) ou numero (fração).
importar probabilidade como p; real pi_est = p.monteCarlo( (x) => { real y = p.uniforme(0, 1); retorno x*x + y*y <= 1; }, 100000 ) * 4; imprima(f"π ≈ {pi_est}");

algebra — Álgebra Linear e Geometria Analítica

importar algebra como al;
Dependência: Para criar vetores e matrizes a passar para esta biblioteca, importe também metodos (ou use a sintaxe a...b).
Os tipos Vetor e Matriz são sempre disponíveis — a dependência é de construção, não de execução.

Todas as funções esperam e retornam Vetor ou Matriz (nunca arrays JS puros). Funções geométricas 2D aceitam vetores de dimensão ≥ 2; funções 3D exigem dimensão = 3.

Geração

al.linspace(inicio: numero, fim: numero, n: inteiro) → Vetor
Retorna Vetor com n valores igualmente espaçados de inicio a fim (ambos incluídos). Pronto para operações vetoriais.
Lança erro se n < 2.
al.identidade(n: inteiro) → Matriz
Matriz identidade n×n.
al.zeros(m: inteiro, n: inteiro) → Matriz
Matriz m×n com todos os elementos iguais a zero.

Operações vetoriais

al.vetorial(v: Vetor, u: Vetor) → Vetor
Produto vetorial v × u. Exige dimensão 3.
al.angulo(v, u: Vetor) → real
Ângulo entre dois vetores em radianos.
al.anguloDeg(v, u: Vetor) → real
Ângulo entre dois vetores em graus.
al.projecao(v, u: Vetor) → Vetor
Projeção ortogonal de v sobre u. Lança erro se u é vetor nulo.
al.saoParalelos(v, u: Vetor) → booleano
Verdadeiro se v e u são paralelos (produto vetorial ≈ 0).
al.saoOrtogonais(v, u: Vetor) → booleano
Verdadeiro se v e u são perpendiculares (produto interno ≈ 0).

Operações matriciais

al.determinante(M: Matriz) → real
Determinante de matriz quadrada. Usa eliminação gaussiana para n > 3.
al.traco(M: Matriz) → real
Traço (soma da diagonal principal). Exige matriz quadrada.
al.inversa(M: Matriz) → Matriz
Matriz inversa (Gauss-Jordan). Lança erro se M é singular.
al.resolverSistema(A: Matriz, b: Vetor) → Vetor
Resolve Ax = b por eliminação gaussiana. A deve ser quadrada; b deve ter tantas linhas quanto A. Retorna Vetor solução x.

Geometria analítica

al.distancia(p1, p2: Vetor) → real
Distância euclidiana entre dois pontos (mesma dimensão).
al.pontoMedio(p1, p2: Vetor) → Vetor
Ponto médio entre p1 e p2.
al.equacaoReta(A, B: Vetor) → Mapa {a,b,c}
Equação ax + by + c = 0 passando por A e B. Retorna Mapa com chaves "a", "b", "c".
al.distPontoReta(P, A, B: Vetor) → real
Distância do ponto P à reta definida por A e B (2D ou 3D).
al.intersecaoRetas(A, B, C, D: Vetor) → Vetor
Interseção 2D das retas AB e CD. Lança erro se paralelas/coincidentes.
al.areaTriangulo(A, B, C: Vetor) → real
Área do triângulo ABC (2D: fórmula do shoelace; 3D: produto vetorial).
al.perimetroTriangulo(A, B, C: Vetor) → real
Soma das três arestas do triângulo.
al.areaCirculo(r: numero) → real
π·r².
al.perimetroCirculo(r: numero) → real
2·π·r.
al.pontoCirculo(cx, cy, r, theta: numero) → Vetor
Ponto na circunferência centrada em (cx,cy) com raio r no ângulo theta (radianos). Retorna Vetor [x, y].
al.equacaoPlano(A, B, C: Vetor) → Mapa {a,b,c,d}
Plano ax + by + cz + d = 0 passando por A, B, C (3D). Retorna Mapa com chaves "a", "b", "c", "d".
al.distPontoPlano(P: Vetor, plano: Mapa) → real
Distância de P ao plano (retorno de al.equacaoPlano).
al.saoColineares(A, B, C: Vetor) → booleano
Verdadeiro se A, B, C são colineares (área do triângulo < 10⁻¹⁰).
al.saoCoplanares(A, B, C, D: Vetor) → booleano
Verdadeiro se A, B, C, D são coplanares (3D). Exige dimensão 3.

latex — Renderização de Fórmulas

importar latex como lt;

Renderiza fórmulas LaTeX usando KaTeX (carregado automaticamente na primeira chamada). Todas as funções de exibição são assíncronas. Não depende de nenhuma outra biblioteca.

lt.linha(tex: caracter) → Promise<vazio>
Renderiza LaTeX inline na saída. Use raw string #"..." para evitar interpretação de barras invertidas.
lt.linha(#"\frac{1}{2} \cdot \pi");
lt.bloco(...exprs: caracter) → Promise<vazio>
Renderiza LaTeX em bloco (ambiente aligned). Aceita múltiplas expressões.
lt.converterParaLatex(fn: funcao | caracter) → Promise<vazio>
Converte uma expressão JS para LaTeX e a renderiza no console.
lt.texString(fn: funcao | caracter) → caracter
Converte expressão JS → string LaTeX sem renderizar. A única função síncrona do módulo.

arquivos — Leitura de Arquivos

importar arquivos como arq;

Todas as funções de leitura são assíncronas (abrem um diálogo de arquivo) e retornam tipos nativos do Pseudo. Não depende de nenhuma outra biblioteca.

Opção tipo — formas de retorno de dados tabulares

tipoRetornoDescrição
"lista"Lista de valoresApenas a primeira coluna.
"lista-mapas" (padrão)Lista de MapasCada linha é um Mapa {coluna → valor}.
"lista-listas"Lista de ListasCada linha é uma Lista de valores.
"mapa-listas"Mapa de ListasCada coluna é uma Lista acessível pela chave.
"matriz"MatrizTodos os valores como números (parseFloat). Use para dados 100% numéricos.
arq.lerCSV(opcoes?: Mapa | {separador?, cabecalho?, tipo?, converterNumeros?}) → Promise<Lista|Mapa|Matriz>
Abre diálogo para arquivo CSV/TSV/TXT e retorna dados estruturados conforme tipo.
OpçãoPadrãoDescrição
separador","Caractere separador de colunas.
cabecalhoverdadeiroSe verdadeiro, a primeira linha é usada como nomes das colunas.
tipo"lista-mapas"Formato de retorno (ver tabela acima).
converterNumerosverdadeiroConverte automaticamente strings numéricas para número.
arq.lerJSON(opcoes?: {caminho?}) → Promise<Lista|Mapa|qualquer>
Abre diálogo para arquivo JSON. Arrays JSON → Lista; objetos JSON → Mapa; valores primitivos retornam como estão. A conversão é recursiva. opcoes.caminho permite navegar em subpropriedades separadas por ".".
// JSON: {"dados": [1, 2, 3]} Lista nums = arq.lerJSON({caminho: "dados"}); // retorna Lista [1, 2, 3]
arq.lerTXT(opcoes?: {tipo?, separador?}) → Promise<Lista|caracter>
Lê arquivo de texto. tipo="texto" → caracter com conteúdo completo. Caso contrário → Lista de linhas não-vazias, divididas pelo separador (padrão: "\n").
arq.lerPDADOS(opcoes?: {tipo?, converterNumeros?}) → Promise<Lista|Mapa|Matriz>
Lê arquivo no formato nativo .pdados (cabeçalho §PSEUDO-DADOS:1.0). Aceita as mesmas opções de tipo e converterNumeros que lerCSV. Lança erro se o arquivo não tiver cabeçalho válido.
arq.abrirImportador() → vazio
Abre o Importador de Dados em nova aba — ferramenta visual para explorar CSV/JSON/TXT e gerar código Pseudo automaticamente.