[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