[Pcx-dev-l] Reordenamento - PCx Modificado
Raniere Silva
ra092767 em ime.unicamp.br
Qua Dez 11 11:37:47 BRST 2013
Olá Daniele,
segue resposta para algumas das suas perguntas. Espero que outros membros da
lista lhe responda as que deixei em branco.
> *1. "Estrutura" Factor*
Não existe estrutura chamada `Factor` no código do PCx. O que existe é um
ponteiro do tipo `FactorType` chamado `Factor`.
> Dentre essas diferenças, a relevante para o reordenamento é o
> tamanho e a função dada para os vetores Factor->Perm e Factor->InvPerm. Em
> um primeiro momento, estes são utilizados para armazenar respectivamente, a
> permutação das linhas de A e a permutação inversa dessas. Já na chamada da
> função SplitFactorType, o espaço destinado a estes é diferente e os mesmos
> possuem um outro objetivo na função Create_LU. Sendo assim, seria
> necessário armazenar os dados destes em outros vetores antes da chamada
> da SplitFactorType, ou se possível, adicionar outros vetores a estrutura
> Factor com outros nomes, para guardar as reordenações.
Pelo que você está falando a função `Create_LU` possui um bug pois deveria
utilizar uma outra estrutura.
O que você deve fazer é criar uma outra estrutura baseada na `FactorType`.
> Assim, surge minha primeira dúvida: onde está "localizada" esta
> estrutura e se é possível fazer alterações na mesma.
A definição da estrutura `FactorType` está localizada no arquivo `SRC/main.h`
junto com a grande maioria das outras estruturas.
> *2. Função Order*
>
> A outra modificação, foi que comentei o código após a chamada da
> mínimo grau, pois eram coisas relacionadas a Fatoração de Cholesky do
> Ng-Peyton. Aliás preciso verificar se não há outras coisas que não precisam
> ser feitas.
Por favor descomente o código e adicione um condicional baseado no solver que
deve ser utilizado. NÃO utilize `#ifdef`.
Me avise se precisar de ajuda para isso.
> * 3. Como e onde será feito o reordenamento*
>
> Aí vem a dúvida mor: como e onde será feito este reordenamento? É
> possível armazenar as permutações após a chamada da função order, mas ainda
> estou perdida qual o melhor momento para repassar tais informações e como
> fazê-lo. Help?
Não entendi sua dúvida.
> Segue uma ideia, dentro da função Create_LU há duas rotinas
> relacionadas a criação de ADAt, de repente passar a informação do
> reordenamento aí e já criar ADAt reordenada... seria uma boa? Alguém que
> trabalhe com essa parte da Create_LU que possa me dar alguma orientação?
Não estou conseguindo localizar a função `Create_LU` no código que me foi
passado. `grep -r Create_LU SRC` não retorna nenhuma ocorrência.
Se precisar adicionar mais parâmetros na chamada da função Create_LU você deve
criar uma nova função.
Espero ter ajudado,
Raniere
Mais detalhes sobre a lista de discussão Pcx-dev-l