-=-
.
.....
  
 
RSS
Direkomendasikan menggunakan brower Opera/Chrome/Firefox. Resolusi minimal 1024x768 | Powered by ____ |
 
  
 
Nikmati Delphi-ID dalam berbagai versi tampilan :
Basic View (LOW Bandwidth)
Default View (Full)
Mobile Edition
Main Menu
..:: onWebTools ::..
..:: onLastPosts ::..
goto Postjumlah komponen maksimal dalam sebuah project(6)
 by d4mnf1y32
 on 21.May at 12:16
goto Posttanya grayscale to biner dengan scanline(1)
 by luckynvic
 on 20.May at 20:44
goto Posttanya looping biner to matriks(1)
 by luckynvic
 on 20.May at 20:10
goto Postsql error:acces denied for user....(2)
 by nasbms
 on 19.May at 16:54
goto Postpemanggilan frame(4)
 by nasbms
 on 19.May at 16:14
goto Posttanya AvLock(0)
 by azuriza
 on 19.May at 11:24
goto PostGet TDBEdit Value Menggunakan LookUp Grid(10)
 by henry_sys
 on 18.May at 11:27
goto Postmenghitung record dalam perulangan(4)
 by idhiel
 on 16.May at 13:53
goto Posttanya ascii(4)
 by mas_kofa
 on 16.May at 12:11
goto PostRawPrint Untuk Delphi XE2(0)
 by adewijaya
 on 15.May at 22:34
goto Postdatabase error..(4)
 by idhiel
 on 15.May at 15:57
goto Postbekasi, pt arila putra mahkota(3)
 by mas_kofa
 on 15.May at 15:37
goto Postbagaimana cara membaca file *.doc dg delphi?(0)
 by ficky
 on 15.May at 06:14
goto Posttanya biner to matriks(13)
 by diandewi
 on 14.May at 20:30

..:: onLast Articles ::..
..:: New Download ::..
Pascal-id.Org
Feeds -  Popular -  Latest
RE: The Longue
8 months, 3 weeks ago
RE: belajar pascal
8 months, 3 weeks ago
RE: The Longue
8 months, 3 weeks ago
RE: belajar pascal
8 months, 3 weeks ago
RE: Perkenalan dan Absen
8 months, 3 weeks ago
RE: Alhamdulillah Buka Puasa Bersama
8 months, 4 weeks ago
RE: تَقَبَّلَ اللهُ مِنَّا وَمِنْكَ - Selamat Hari Raya Idul Fitri
8 months, 4 weeks ago
Lintas Situs
«
free web site stats and visitor tracking

Post new topic   Reply to topic
View previous topic Printable version Log in to check your private messages View next topic
Author Message
ir1kerenOffline
Location:
11 Post subject: Floating point overflow->compiler error?  PostPosted: 12/Mar/2009 16:21
onConfident


Joined: 22-Nov-2007
Posts: 29

Status: Offline
Gw bikin aplikasi yang ada looping ky gini:

      Code:

for x := 0 to FVertex.Count - 1 do
    for i := 0 to FVertex.Count - 1 do
        FV[x,i]:=0.5*(1+tanh(fu[x,i]/Fu0));


Fu gw definisikan sbg TDouble2D

      Code:
type
  TDouble1D=array of Double;
  TDouble2D=array of TDouble1D;


Nah pas di-run muncul pesan error "Floating point overflow at 00403230".
Trus gw lacak, nemu error muncul klo

      Code:

Fu[x,i] = -12.278243687


dan

      Code:

Fu0 = 0.001


Klo pake kalkulator angka2 Fu[x,i]/Fu0 hasilnya: -12278.243687
Nah iseng2 gw pengen tau bil. tsb tipenya (logikanya sih Double), aku trap pake:

      Code:

ShowMessage(VarTypeAsText(VarType(fu[x,i]/Fu0)));


Muncul pesan "Double". Bener deh.
Trus gw lacak ke fungsi tanh() yg didefinisikan di unit Math, isinya:

      Code:

function Tanh(const X: Extended): Extended;
begin
  if IsZero(X) then
    Result := 0
  else
    Result := SinH(X) / CosH(X);
end;


Nah X ternyata tipe-nya extended, yg range nilainya:
-3.6 x 10^4951 .. 1.1 x 10^4932 (ukuran total 10 byte)
Jadi seharusnya lebih besar dari double
Iseng-iseng gw trace pake Evaluate/Modify (F7) masukin:

tanh(-12278.243687)

Eh, muncul pesan "Floating point overflow at 00403230".
Gw pake Evaluate/Modify lg buat ngitung -12.278243687/0.001, hasilnya sama (dan normal-ga ada error), -12278.243687. Knp permasalahannya di fungsi tanh(), padahal parameternya bertipe extended ya?
 
 View user's profile Send private message  
Reply with quote Back to top
ir1kerenOffline
Location:
Post subject:   PostPosted: 13/Mar/2009 08:43
onConfident


Joined: 22-Nov-2007
Posts: 29

Status: Offline
welehh..sepi..ato jg sama2 bingun ky aku? Laughing
 
 View user's profile Send private message  
Reply with quote Back to top
heruxOffline
Location: Kediri
Post subject:   PostPosted: 13/Mar/2009 08:49
onProfessional


Joined: 13-Jul-2006
Posts: 668
Location: Kediri
Status: Offline
Males mikir ah.....
 
 View user's profile Send private message Visit poster's website Yahoo Messenger  
Reply with quote Back to top
ichan29Offline
Location:
Post subject:   PostPosted: 13/Mar/2009 09:06
onProfessional


Joined: 23-Feb-2007
Posts: 603

Status: Offline
      ir1keren wrote:
welehh..sepi..ato jg sama2 bingun ky aku? Laughing

@ir1keren: tidak selamanya apa yg dikau posting langsung bisa dijawab, coba baca dulu yg ada diperaturan forum ini, bisa aja mereka pd lg sibuk atau mungkin alasan2 yg lain.. jgn terlalu berharap, dan usaha adalah cara yg paling bagus, salah satunya dikau posting masalah ini disini [ini salah satu usaha dikau]
      @herux wrote:
: Males mikir ah.....

klo menurutku lebih baik tdk usah coment drpd spt ini, takut menimbulkan salah penafsiran dari sang penanya..
kembali ke topik:
coba lihat: FV[x,i]:=0.5*(1+tanh(fu[x,i]/Fu0));
sementara fungsi tanh jika nilai paramaneter tdk 0 akan meng-eksekusi spt ini: SinH(X) / CosH(X), lalu dikau coba dg cara Evaluate: -12.278243687/0.001 [ini menurut dikau tdk error]
apakah nilai itu merupakan dr SinH dan CosH? bukannya nilai itu cuman nilai dr Fu dan Fu0? jadi itulah yg menyebabkannya.
 
 View user's profile Send private message  
Reply with quote Back to top
ichan29Offline
Location:
Post subject:   PostPosted: 13/Mar/2009 09:11
onProfessional


Joined: 23-Feb-2007
Posts: 603

Status: Offline
FV[x,i]:=0.5*(1+tanh(fu[x,i]/Fu0));
FV[x,i]:=0.5*(1+(SinH(-12.278243687/0.001)/CosH(-12.278243687/0.001)));
 
 View user's profile Send private message  
Reply with quote Back to top
ir1kerenOffline
Location:
Post subject:   PostPosted: 13/Mar/2009 10:34
onConfident


Joined: 22-Nov-2007
Posts: 29

Status: Offline
      ichan29 wrote:

klo menurutku lebih baik tdk usah coment drpd spt ini, takut menimbulkan salah penafsiran dari sang penanya..


maap deh, klo bikin salah penafsiran Embarassed kbiasaan ngeblog..

      ichan29 wrote:

FV[x,i]:=0.5*(1+tanh(fu[x,i]/Fu0));
FV[x,i]:=0.5*(1+(SinH(-12.278243687/0.001)/CosH(-12.278243687/0.001)));


balik ke prmsalahan, gw ampe ribet trace ke unit2 laen, buka buku matematika Smile, akhirnya nemu permasalahannya.

      Code:

function SinH(X:extended):extended;
begin
  result:=exp(x)-exp(-x);
end;

function CosH(x:extended):extended
begin
 result:=exp(x)+exp(-x);
end;


Nah pas eksekusi kan -12.278243687/0.001 = -12278.243687, trus exp(-12278.243687) = 0, dan exp(12278.243687) = error... Trus gw hitung pake calc.exe exp(12278.243687), hasilnya = 12278243687,e+0 ato Infinite Number.. Very Happy Ternyata komp ga mampu ngitung eksponensial sgede itu Mr. Green
Nah developer delphi tu mengasumsikan TanH(x)=SinH(x)/CosH(x) ajah. Pdahal ada aturannya lagi,
klo lebih besar dari 20, TanH me-return 1, klo lebih kecil dari -20, TanH me-return -1.
Jadi gw bikin custom function:

      Code:

function MyTanH(X:extended):extended;
var
    r1,r2 : extended ;
begin
  if x > 20.0
   then result := 1.0
  else if x < -20.0
   then result := -1.0
  else
   begin
    r1 := exp(x) ;
    r2 := exp(-x) ;
    result:= (r1 - r2) / (r1 + r2) ;
   end ;
end;


Eng-ing-eng..problem solved! Trnyata developer Delphi ga teliti! Mr. Green
Thx smuanya, n yg ngasih buku2 matematika!!!! Cool
 
 View user's profile Send private message  
Reply with quote Back to top
deLogic
Location: Jakarta
Post subject:   PostPosted: 13/Mar/2009 10:57
onMage


Joined: 04-Jul-2005
Posts: 2282
Location: Jakarta
Problem dan solusi Anda dapat Anda kirim ke QC (Quality Central) Embarcadero (dahulu Borland, CodeGear) di http://qc.embarcadero.com/wc/qcmain.aspx?p=10

_________________
.:: Lagi gak pengen pasang signature ::.
 
 View user's profile Send private message Visit poster's website  
Reply with quote Back to top
Display posts from previous:     
Jump to:  
All times are GMT - 12 Hours
Post new topic   Reply to topic
View previous topic Printable version Log in to check your private messages View next topic





Powered by PNphpBB2 © 2003-2009 The Zafenio Team
Credits


| Register | Lost Password ? |