11:30:45 <lindi-> well, it's been forgotten for a year or so, i was supposed to releaese it when i could make it less ugly but that never happened

11:31:55 <ZeroOne> oh. ok. :/ here's my brainfuck-interpreter anyway: http://koti.mbnet.fi/~villes/php/bf.php (nested loops still not implemented).

11:37:55 <lindi-> anyway, it's really ugly, crappy and all but due to popular demand i'll put a version online soon, just a sec

12:06:04 <lindi-> but the file has been lying in my home directory for a year so that i really can't remember where those originally came from

12:06:19 <lindi-> fibonacci.2.bf fibonacci.3.bf fibonacci.4.bf fibonacci.5.bf fibonacci.6.bf fibonacci.bf

12:07:42 <lindi-> fizzie: http://iki.fi/lindi/binterp/binterp-0.001/BENCHMARKS now includes mooz's bef too

12:11:23 <lindi-> mtve: 'p' could be possible to implement by calling construct_linked_list() and generate_code() again

12:12:28 <lindi-> and foo bar p could mark (foo, bar) as dirty so that recompilation would occur only if the program flow hits (foo, bar)

13:11:20 <ZeroOne> btw, I've created quite a few esoteric programming language articles in Wikipedia during the past month. you guys can see, too, if you can create or improve any of these articles: http://en.wikipedia.org/wiki/List_of_esoteric_programming_languages :)

21:13:36 <ZeroOne> lindi-: so what do you think about the idea of a fungeoid with variable length commands? or anyone else?

21:19:46 <lindi-> ZeroOne: interesting idea, have you tried to define the commands for such a language?

21:22:20 <ZeroOne> and the befunge-# would need to be able to jump over more than one next character

21:23:36 <ZeroOne> or if variable length commands didn't work, then three characters long, but so that vertical movement would still be treated by single columns, not by colums of three.

21:27:53 <ZeroOne> something has to be thought for orphan letters which probably will appear. maybe if a letter set doesn't form an instruction, it could be pushed to stack

21:30:33 <lindi-> (unless the purpose of the language is to have such a complex syntax that one actually has to take advantage of syntax errors -g)

21:32:48 <fizzie> and I think esolang (the mailing list) had some talk about how to get more possible commands for befunge.

21:33:10 <fizzie> if you want a longer jump than #, you can use funge98, it has all the "cheating" instructions one could wish for.

21:36:51 <fizzie> was going to write a befunge variant with "define", "call" and "return" instructions. 'define' would take an (x,y) pair that defines the start of an function and a small integer 'n' which would be the "name", 'call' would pop n and go to the function, but push the return address to stack, and 'return' would pop the return address off the stack and go back.

21:37:10 <fizzie> not sure if I wanted a separate "execution stack" or to use the normal stack for it.

21:38:19 <fizzie> yes, but if I use the normal stack then delivering parameters to functions will be hard.

21:38:43 <fizzie> could of course have 'define' take the number of arguments and then do some creative rearranging on 'call'.

21:39:12 <fizzie> then the function could do some funky stuff with its own return address if it wanted.

21:40:50 <lindi-> fizzie: btw, completely offtopic, is there some way to search messages in tkknews.hut.fi?

21:42:27 <fizzie> not sure. I don't think so, but I think the subject might've been discussed in the news when tkknews was introduced.

21:47:28 <ZeroOne> hey lindi-... remember that stupid picture in today's Power Point show? the one where the PC was cooking something.

21:47:56 <ZeroOne> I bet the teacher didn't know how good the "programming is like making recipes" comparison was: http://www.dangermouse.net/esoteric/chef.html ;)

18:51:01 <Keymaker> hopefully you'll get the inner-loops support done sometime to get ',[[.>]<]' working :)

19:19:08 <Keymaker> ZeroOne: well, of course i didn't think that in php interpreter that kind of infinite printing most probably won't happen :} sorry about that

19:21:03 <Keymaker> and with this start 'ZeroOne: ' i mean that these lines are meant for you to read :)

19:26:04 <ZeroOne> I'm just afraid that I need to do an Ugly Hack(tm) to make those nested loops work

19:27:00 <ZeroOne> I don't really like Ugly Hacks and I'm sort of short of time nowadays but I'll try to get to it sooner than later. :)

17:52:08 <fizzie> although in retrospect ~1550eur was a bit much for a machine that worked for six days.

19:35:20 <lindi-> ZeroOne: btw, while cycling back home i got a new idea regarding that language where one task can be done in only one way

19:41:10 <lindi-> so, if every program is presented as a mathematical function, say f(x), then the language could be defined so that only the form of f(x) that is the "most" simplified is legal

19:42:03 <lindi-> fizzie: at least with polynomials it should not be possible to get a function (read: program) that behaves in the same way, unless the functions are identical

19:46:17 <fizzie> actually I think we proved in one of our maths courses that n-degree polynomials are.. ah, what's the word? n-ulotteisen avaruuden kanta, tavallaan. yksiksitteiset koordinaatit ja nin.

19:47:52 <fizzie> it's still pretty limited, though, but at least your 'programs' can now take a set of real numbers as input and return a set of real numbers as output.

19:53:13 <fizzie> if you happen to have mathematica and/or an equivalent piece of software (perhaps gnuplot would be enough), plot Plot3D[Arg[f2[x, y]], {x, -5, 5}, {y, -5, 5}, PlotPoints -> 100,

19:54:36 <fizzie> f2[x_, y_] := x^3 + 3x y^2 - 3x + i(y^3 + 3x^2y - 3y), where 'i' is the imaginary unit. when you plot the magnitude of that as a surface, it's as clean and smooth as.. well, as any function you'd like to name, but the argument plot..

19:55:18 <ZeroOne> ok... unfortunately I don't have any math software installed... I guess I should soon get something.

19:55:34 <lindi-> ZeroOne: well, if you extend the simplification rules you can support many other types too

19:56:08 <ZeroOne> although I once made a program that was able to draw 2d-diagrams of polynomial functions. in qbasic, even. ;P=

19:56:58 <fizzie> and you need to limit yourself to finite-degree polynomials, otherwise you could have an infinitely-long program which would do the same as 'sin x' (if you write some simplification rules to allow trig. funcs)

19:58:47 <lindi-> fizzie: that reminds me, where does mooz irc nowadays? /whois shows no channels but maybe they are secret/private

19:58:56 <ZeroOne> heh. :) we only had some really stupid piece of some software the teacher had made. copied that from paper and got disappointed when it did practically nothing: "oh, no, it shouldn't do anything, it's just the initialization function thingie!" was the teacher's response ;PP

20:00:05 <fizzie> I'm not sure, really. I speak mostly in a query. he's been gradually moving to an apartment in kamppi, probably parted from #da during that time.

20:02:21 <lindi-> ZeroOne: apt-get install maxima and plot3d(x^3 + 3*x*y^2 - 3*x + %I*(y^3 + 3*x^2*y - 3*y), [x,-5,5], [y,-5,5]); if you want to see the function fizzie pasted

20:05:35 <fizzie> with mathematica I need to use either Abs[] or Arg[] (well, or Re[] or Im[]) in front of it.

20:07:46 <fizzie> you want to use abs() or arg() (or corresponding maxima functions) if you want to see the strange-ness I mentioned.

20:08:39 <fizzie> and actually while the magnitude plot with abs() looks smooth, looking at it with the ranges [-2, 2] reveals otherwise.

20:12:23 <lindi-> fizzie: plot3d(cabs(x^3 + 3*x*y^2 - 3*x + %I*(y^3 + 3*x^2*y - 3*y)), [x,-5,5], [y,-5,5]); looks like iki.fi/lindi/maxima_plot3d_2.png

20:18:35 <fizzie> extra credit for proving in which points of C that function is a) complex differentiable b) analytic. (the b part was relatively easy, but I'm not sure how I'm supposed to do that a part.)

20:21:01 <lindi-> fizzie: now it does not look that smooth either indeed, iki.fi/lindi/maxima_plot3d_3.png

20:31:13 <fizzie> I thought the fact the function satisfies the cauchy-riemann equations only in the points of the imaginary and real axis, and therefore not in any real region of C, would be enough in stating it's not analytical. it still _might_ be, but..

20:32:48 <fizzie> the canonical definition would be that a complex function is analytical in point z0 if a derivative f' exists for all points z in a neighbourhood of z0, but in order to use that would require me solving the a) question.

20:36:04 <fizzie> ah, right. in order for f to be analytical in a region G it would have the partial derivatives of its component functions satisfying cauchy-riemann, and since that isn't the case it can't be analytical. (I think.)

20:37:40 <fizzie> I still need some way to solve that 'a' part. I'm not sure how I'm supposed to prove that lim h->0 (f(z+h)-f(z))/h exists when h is a complex number and can approach 0 from any direction in the complex plane.

20:40:02 <fizzie> neither do I, but I'm sort-of supposed to. there could be a better way to do this though.

20:42:38 <lindi-> but at least i've learned something this week. when i cycled back home today i could also do some partical fraction decompositions in my head :P

20:45:33 <fizzie> I freely admit I don't remember ~anything about how to do a LU-decomposition of a matrix.

21:37:48 <fizzie> oh? then you can tell me what's the easiest way to show where the derivative f'(z) for a complex function f(z) exists.

21:38:40 <fizzie> looking at the definition of f' (that is, f'(z) = lim h->0 (f(z+h)-f(z)/h) is awfully untrivial since h can approach 0 from any direction and I need to look at all points z.

21:41:07 <Taaus> Well... "Easiest" depends on the situation. But the Cauchy-Riemann equations are a safe bet.

21:45:48 <fizzie> but are CR enough? I mean, they definitely are enough to prove whether the function is analytical anywhere, but f'(z) could still exist in some isolated points without it being analytical there.

21:49:38 <Taaus> A function f=u+iv from an open subset of the complex plane to the complex plane itself is holomorphic if u and v are differentiable, and if the partial derivatives satisfy the relations du/dx = dv/dy and du/dy = -dv/dx (where the ds are "soft ds". I.e. partial differentiation.)

21:51:36 <Taaus> It can be applied to single points of the function as well. To prove differentiability in, say, (x_0,y_0).

21:54:12 <Taaus> I'm not sure what you mean by f'(z) existing in isolated points without being analytic in said points.

22:01:15 <fizzie> my definition of an analytic function says a function is analytic at point z0 if f'(z) exists for all z in a neighbourhood of z0, and it has a side remark saying "existance of f'(z) in a single point is not enough"

22:04:33 <Taaus> Hm. My notes don't mention analyticity in a single point. In gives the usual limit definition of differentiability and says a function is holomorphic if it is differentiable in all points. I suppose it makes sense that there needs to be a neighbourhood around z_0. You need more than a single point for an open subset.

22:06:25 <Taaus> If you can read Danish, you can take a look yourself. They're online at http://math.ku.dk/noter/ The course is called 2KF.

22:23:04 <fizzie> well, maybe my notes try to say that it needs to analytic in the open subset, but simply having f'(z) (that is, the limit existing) at a single point doesn't yet make it analytical.

22:24:39 <fizzie> but our exercise question gives us a function and asks "in what subset of C the function f: z -> ... is (a) differentiable (b) analytic".

22:25:35 <fizzie> and I can easily say it's analytic nowhere in C, because it satisfies CR only at z=0, but I'm not quite sure about the differentiability thing.

22:26:19 <Taaus> Well... It's differentiable in the points where the limit exists... I guess you'll have to do it the hard way.

22:28:05 <fizzie> agh. I tried writing open "f(z+h)-f(z)" (with z=x+iy and h=hx+ihy) and ran out of paper width. granted, it's only a c5 envelope I'm writing on, since all proper paper is several meters right and I can't get myself off the chair

22:29:37 <fizzie> f: z=x+iy -> x^3 + 3xy^2 - 3x + i(y^3 + 3x^2y - 3y). I'm tempted to abuse the component functions u(z) and v(z) somehow here, since they are more humane.

19:56:10 <fizzie> considering that I got it from the course assistant, I don't think it warrants congratulations.

19:58:06 <fizzie> the official way to solve it was to look at the function "u(z) = f(z) + z^3 - 3z", which is analytic and differentiable everywhere f(z) is, and that particular function makes f(z) simplify a bit, so that it is possible for a normal human to just look at lim_h->0 (u(z+h)-u(z))/h.

20:00:18 <fizzie> and apparently also if the component functions u(z) and v(z) (when f(z) = u(z)+iv(z)) are differentiable and satisfy the cauchy-riemann equations in a single point, the function is indeed complex-differentiable there. it is a sufficient condition, but we weren't quite sure if it's a necessary one, too.

20:01:06 <fizzie> if the latter, it can be used to show that f(z) is complex-differentiable on the coordinate axes and analytic nowhere.

18:16:25 <ZeroOne> duh... some idiot placed all esoteric programming languages under Votes for Deletion in Wikipedia. :P

18:16:29 <ZeroOne> http://en.wikipedia.org/wiki/Wikipedia:Votes_for_deletion#Esoteric_programming_language_related

18:16:51 <ZeroOne> "There seems to be a whole bunch of so called eEsoteric programming language that found its way into wikipedia over time. Personally I think most of them are rubbish and nothing more than a (lame) joke"

18:26:25 <ZeroOne> and then they're doing Google searches by their names and finding out that some language gets only 100 hits and make the conclusion that it is "not notable". :G

19:06:30 <ZeroOne> http://en.wikipedia.org/wiki/Wikipedia:Votes_for_deletion/Esoteric_programming_language_related#Esoteric_programming_language_related I posted a great comment to the end of the page. yay!