POV-Ray : Newsgroups : povray.binaries.scene-files : U equals zero - or not : U equals zero - or not Server Time
18 Jun 2021 02:21:51 EDT (-0400)
  U equals zero - or not  
From: Bald Eagle
Date: 15 Sep 2018 20:40:00
Message: <web.5b9da55195850806458c7afe0@news.povray.org>
Posting here in a new thread since advanced users does not support attachments.
:|


Maybe I'm a bit daft here, but can you please elaborate on the above
notation? Does each line represent something you tried inserting...
somehwere?

Yes.

After the `#for()` statement?... with the left showing the
result and the right showing the statement you tried?

Yes.

Did you try each
of the lines individually, or did you add them one after the other in
the above order?

I had added them all, to see why you somehow were able to have the comparison
evaluate successfully, and have the code execute without error, and then I
commented out two of them and cycled through, thus narrowing the problem down to
why #local U = 0; "fixes" the issue.

Does "no effect" mean you didn't get the desired
effect, or does it mean the observed effect isn't there? Does "Code
proceeds" mean the code works, or does it mean the `#if` clause is skipped?

No effect means I get the existing error, where the comparison craps out and the
loops runs out until I get the uninitialized array element error.


Hunting down obscure bugs is a matter of precision. This seems to be
something so strange that I need to understand /exactly/ what you're
doing and /exactly/ what your results are.

Yes, I would agree.
This happens in 3.7.0.msvc10.win64, Mr. Balaska's current QTPOV-Ray version,
(both on the same laptop, dual-boot) and the (IIRC) 32-bit 3.7.0 version on the
tower at work.


This is all the more important since I still don't seem to get the same
results; so either I didn't fully understand your description to allow
me to reproduce it - in which case precision is important so that I can
figure out what I'm still doing differently than you - or thre is
something fundamentally different between my environment and yours - in
which case precision is important because your description of the
scenario is all I have to go by to understand the root cause.

Yes.   I'm hoping it's just some strange thing that I'm reading through and not
catching

> So I tried #local U = int (U);   Nope.

You tried that where? And what exactly does "Nope" mean?

Immediately after the #for (U, 0, Usize) statement, with all of the other three
#local statement commented out.

> So, #for (U, 0, .... doesn't actually start at 0???   :|

I can pretty much rule that one out: The parser takes the literal `0`
and immediately assigns it to the local variable U, with no other fancy
operations involved. If there are any two statements by which you can
absolutely positively reliably get a clean genuine zero into some
variable, it is `#declare/local Foo=0;` and `#for (Foo,0,...)`.

Yes, I had both assumed and hoped that was the case, which makes this latest
SNAFU/FUBAR all the more puzzling.

Attached are scene, includes, and a developmental model of the function for the
CURVE section at the end of the main scene file.


Post a reply to this message


Attachments:
Download 'scenefiles.zip' (11 KB)

Copyright 2003-2021 Persistence of Vision Raytracer Pty. Ltd.