[Pcx-dev-l] Reordenamento - PCx Modificado

Raniere Silva ra092767 em ime.unicamp.br
Qua Dez 11 11:18:17 BRST 2013


----- Forwarded message from Daniele Silva <silvadc.dcs em gmail.com> -----

Date: Wed, 11 Dec 2013 09:50:17 -0200
From: Daniele Silva <silvadc.dcs em gmail.com>
To: Aurelio Ribeiro Leite de Oliveira <aurelio em ime.unicamp.br>, Raniere Silva <ra092767 em ime.unicamp.br>,
	carlalucke em gmail.com
Subject: Reordenamento - PCx Modificado

Olá! Tudo bem?


Como vocês já sabem estou tentando reativar o reordenamento da matriz de
restrições no PCx Modificado. Desse modo, surgiram alguns pontos que eu
gostaria de compartilhar com vocês.


    *1. "Estrutura" Factor*

           É possível chamar a função Order, na qual é feito o
reordenamento, sem maiores problemas, desde que seja feita anteriormente a
chamada da          função NewFactorType, a qual faz o alocamento de
memória de alguns fatores utilizados no reordenamento (estrutura Factor).
Função esta muito parecida com a função criada posteriormente,
a SplitFactorType, que aloca também memória para essa estrutura Factor, mas
de uma forma diferente.

           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.

           Assim, surge minha primeira dúvida: onde está "localizada" esta
estrutura e se é possível fazer alterações na mesma.


    *2.  Função Order*

        Foram feitas algumas modificações na função Order. Havia um "return
(1) " logo após a chamada da função mínimo grau. Eu retirei tal return,
caso este tenha alguma razão importante para estar ali, por favor me
comuniquem.

       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.


  * 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?

    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?

Ah outra coisa, o vetor b do sistema (AX=b) também precisa ser reordenado
certo? Se sim, não é necessário fazer a volta da permutação na resposta
final, ou sim?

Outra dúvida, caso que tenha que mexer na Fatoração Controlada de Cholesky,
onde está essa função e em que momento esta é chamada?


Abraços.
Daniele

----- End forwarded message -----


Mais detalhes sobre a lista de discussão Pcx-dev-l