30. oktober 2005 - 18:48Der er
18 kommentarer og 1 løsning
Matematik / accuracy problem..
Hej jeg sidder og er ved at lave en hashing funktion til en mobil-telefon.. Jeg har en implementering på PC der dur, men når jeg implementere det samme på mobile opstår der problemer - jeg håber der er nogle der kan hjælpe mig her:
PC Implementering: unsigned char bits=(unsigned char)(log((double)100000)/log(2.));
Mød TrackMan og Veo på Computerworld Cloud & AI Festival og hør, hvordan tech ændrer måden, vi træner og udvikler talent – fra skolebold til The Masters.
Hvilken type ARM? Jeg har aldrig hørt om en 16bit, er det en der kører i thumb mode? Hvilken compiler? Og jeg er enig, det er et underligt resultat, den bør runde ned. Der bør være en floor funktion til compileren.
104 MHz, det tyder på en GSM/GPRS mobil? Har du checket om der er en floor funktion? Der bør være én i math/cmath/math.h Jeg har ikke brugt VC.net på en ARM...
Det er en Nokia 6600. Problemet er lidt at mobilen kører Symbian OS, der har sit eget Math library, og heri findes der ikke en floor funktion.. Jeg har set at Symbian har tilføjet et ANSI C math library af kompatibilitet årsager, jeg har dog ikke eksperimenteret med at bruge det endnu - håbede lidt jeg kunne bruge Symbians standard math bibliotek.
Jeg fik lige sagt noget vrøvl: jeg bruger gcc til at kompilere til ARM processoren, og VS.net til x86 (bruger jeg i en emulator)
Jeg har desuden lige opdaget at det kun er i emulatoren at problemet eksistere, jeg gik dumt nok ud fra at det oxo ville være et problem på telefonen - jeg har dog lige lavet et test program der giver de rigige resultater på selve telefonen.. Men i emulatorer viser det forkerte resultat.. Så meget for den emulator..
Det må vel nærmest være en fejl i det SDK jeg bruger?
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.