close Warning: Can't synchronize with repository "(default)" (/var/svn/tolp does not appear to be a Subversion repository.). Look in the Trac log for more information.

Opened 9 years ago

Closed 9 years ago

#1876 closed defect (fixed)

DifEq no funciona igual en 64 que en 32 bits

Reported by: Jorge Owned by: Jorge
Priority: highest Milestone: Mantainance
Component: Math Version: head
Severity: critical Keywords:
Cc:

Description

Cuando ejecutamos el código test.tol (adjunto) en 32 bits obtenemos la siguiente salida:

check = 7.247535904753022e-13
OK

En cambio cuando lo ejecutamos en 64 bits obtenemos la salida:

<E>
ERROR: [1] No es posible aplicar DifEq a una matriz virtual  (Numerator degree p=1686110208 and X0 have not enouth rows).  Blas.R.Dense(2x1) </E>
<W>
Warning: [1] <W>Imposible restar dos matrices de dimensiones (2727,1) y (0,0).</W>
</W>
check = ?
<W>
Warning: [2] [If] la función de condición no puede devolver valores desconocidos.</W>

Attachments (2)

test.tol (330 bytes) - added by Jorge 9 years ago.
args.oza (24.2 KB) - added by Jorge 9 years ago.

Download all attachments as: .zip

Change History (3)

Changed 9 years ago by Jorge

Attachment: test.tol added

Changed 9 years ago by Jorge

Attachment: args.oza added

comment:1 Changed 9 years ago by Jorge

Resolution: fixed
Status: newclosed

(In [6872]) fixes #1876, refs #1866: la directiva #pragma pack se usa solo para MSVC, además se usa con push/pop para establecer correrctamente el valor previo de pack. El error se debía a que la clase template BPolyn se estaba instanciando algunas veces con tamaño 16 y otras con tamaño 12 provocando una aritmética de puntero ambigua para esa clase (y a saber cuál otra!)

Note: See TracTickets for help on using tickets.