xrjf 230 Posting Whiz

I think that, if possible, the data could be read in chunks of, say, 2K rows. Each time a chunk is read, first look for duplicates inside the chunk and, then, compare to the other 2M – 2K. If a row is present in the chunk of 2K and in the reminding 1,998,000 rows, discard from the chunk. Supposing there are 2K- N duplicates left in the chunk, proceed to write into a text file formatted in CSV, for example. Continue with another chunk of 2K rows in the same manner, appending the unique email from the second 2k rows to the text file with the first chunk. This will require 1000 chunks to be treated and examined by Regex (1000x2000=2M).

xrjf 230 Posting Whiz

The days when the calculator had almost 3 thousand visits a day have gone. Since then, there have been several major versions and lots of minor versions.
Somehow, I feel pleased in that the present core algorithm follows the rules of the first I read; of course, extending the simplicity of just adding or multiplying to other operations. After many unsuccessful efforts, version #8 has the ability to parse matrix expressions and, at the same time, derivatives or integration symbols.
Mates8 -Spanish or Catalan equivalent to English 'math8'- perhaps isn't the quickest, nor by far the most complete math library but, in my opinion, has several benefits. Mainly, let me point out, is a .Net library of managed code: if something goes wrong, there will be no leaks of memory, no PC hangs. I could have written some unmanaged code boosting critical sections but, again in my opinion, balancing pros and cons would be of less profit.
So, what can it do and how? I will not do an exhaustive explanation; instead I'll give some basic ideas. I suggest the reader, if interested, to dig experiencing but, if understanding the code snippet below gets difficult, please, reconsider another workaround:

Import mates8.dll to your .Net application:

1. Imports mates8

Set the configuration to your needs:

...
17. MathGlobal8.bCaseSensitive = True
18. MathGlobal8.bFractions = True
...

Let mates8 do the math:

11. Dim mP As matrixParser = Nothing
... 
69. Dim strQuery As String …
xrjf 230 Posting Whiz

Take a look here. Seems for me, that a responsive web, summarizing, is more flexible to the different devices that can visit the web.

xrjf 230 Posting Whiz

Just another note: if you enter &h0.8, as you may expect, the decimal result is 0.5 (=1/2).

xrjf 230 Posting Whiz

At my site, if you wish you may enter hexadecimal, octal and/or binary numbers with the dot (.) by prefixing &h, &o or &b, respectively. The result may be shown in any/all of those bases, besides decimal.

A bit of further explanation:
When one of the following &h, &o, &b or &d followed by a number, respectively, in
hexadecimal, octal, binary or decimal base is found in an expression,
the prefix overrides the previous base: 10+&hf+10 gives 41 (decimal: 10+15+16=41)
as result (not 35). To restore initial default decimal base &d should be prefixed:
10 + &hf + &d10 = 35. So in brief, the initial default base is decimal until
a new base is found and, this last one prevails until a new base prefix overrides.

At the present, the downloadable version in not updated, but hope in brief it'll be.
Meanwhile, the online polynomial and scientific calculator version gives this posibilities.

xrjf 230 Posting Whiz

Let's say it works from left to right.
If eax contains a 5, then:
cmp eax, 6 ; eax < 6
jb label ; will jump to label

pbj.codez commented: Exactly what I needed to see. Thank you again =D +0
xrjf 230 Posting Whiz

Long time since I wrote my last asm code, but I'll try to answer your questions:

69. mov dword [Guess], 5 states that a 5 will be moved to position pointed by Guess and value will occupy a double word length (32 bits). This is equivalent to 'guess = 5' in C, though in C you move always 32 bits: you don't just move 16 bits as in

mov word [guess], 5

79. The comment is right, it's eax * eax = 9
82. Line 81 compares eax and the value 'pointed' by 'Guess', this updates the status registers, so in #82 'jump if not below' jnb will jump if factor*factor >= Guess. This jump will avoid adding 2 in line 89 (Think that the 1st condition of line 28 is failing so it jumps to line 30, whose equivalent is line 91)
85 64-bit contents of EDX-EAX are divided by the operand (ebx), leaving a 32-bit quotient in eax and a 32-bit remainder in edx.
87 if edx was equal to 0 (#86) it will jump to end_while_factor, because now the 2nd condition (see line 28) is failing and addition in line #89 needs to be omitted.
92 'je' is a mnemonic for 'jump if equal' in the last 'cmp' executed.
pbj.codez commented: Thank you for the help. +0
xrjf 230 Posting Whiz

Saw this thread today: http://www.daniweb.com/software-development/csharp/threads/448676/derivative-integrals
You may download the (free) source code from here http://xrjunque.nom.es/precis/swdownload.aspx
Need to say it's all vb.net, but you can easily have a .dll (all the 'machinery' is inside a folder: just complile as a .Net's .dll).

Then, to derivate say 'cos(x)':
dim strToDerivate as string = "Dx(cos(x))"
dim m8 as matrixParser = Mates8.matrixParser.parse(strToDerivate, "", Nothing)
Label1.text = Mates8.m8.ret.toStringRetVal ' retrive & show the result:

For integration:
dim strToIntegrate as string = "∫(cos(x))dx" ' also "integral(cos(x))dx" does work
m8 = Mates8.matrixParser.parse(strToIntegrate, "", Nothing)
Label2.text = m8.ret.toStringRetVal