Search found 59 matches

by odomobo
Mon Jan 21, 2019 7:28 pm
Forum: Computer Chess Club: Programming and Technical Discussions
Topic: Writing bugs
Replies: 66
Views: 10805

Re: Writing bugs

mar wrote:
Mon Jan 21, 2019 9:16 am
this:

Code: Select all

        ttEntry.Score = beta;
Yep, an unfortunate side-effect from copy-pasting my cutoff logic. When I saw it, I couldn't believe that it took me so long to find it -- I had even looked through all my new changes line-by-line when troubleshooting.
by odomobo
Mon Jan 21, 2019 7:38 am
Forum: Computer Chess Club: Programming and Technical Discussions
Topic: Writing bugs
Replies: 66
Views: 10805

Re: Writing bugs

Speaking of writing bugs, I spent 2 days trying to figure out why adding transposition tables weakened my engine. See if you can spot the error. It's subtle... apparently... >_< Search(...) { ... // save to tt if (searchMode != SearchMode::Quiescence) { TTEntry ttEntry; ttEntry.Hash = hash; if (alph...
by odomobo
Sat Jan 05, 2019 3:26 pm
Forum: Computer Chess Club: Programming and Technical Discussions
Topic: Simplest way to implement quick and dirty lazy smp
Replies: 14
Views: 2644

Re: Simplest way to implement quick and dirty lazy smp

Does randomized move order provide a benefit for lazy SMP?
by odomobo
Sat Dec 29, 2018 2:40 pm
Forum: Computer Chess Club: Programming and Technical Discussions
Topic: dotnet and winboard
Replies: 10
Views: 1395

Re: dotnet and winboard

Anytime I run into this kind of issue, I write a tiny batch script (or bash script), and call that
by odomobo
Thu Dec 20, 2018 4:42 am
Forum: Computer Chess Club: Programming and Technical Discussions
Topic: new axolotl!
Replies: 10
Views: 1420

Re: new axolotl!

... I think c++ will have to be the next language I look into :) C++ is one of my favorite languages, and it's incredibly powerful, but it also has many confusing parts and legacy rough-edges. C, on the other hand, is a pretty simple language with only a relatively few rough edges, but it lacks man...
by odomobo
Wed Dec 19, 2018 8:59 am
Forum: Computer Chess Club: Programming and Technical Discussions
Topic: new axolotl!
Replies: 10
Views: 1420

Re: new axolotl!

In c or c++, you can store arbitrary objects in-place in an array (store the object by value, instead of by reference). For, for example, if your tt entries looked like: struct tt_entry { uint64_t hash; int32_t score; int32_t depth; }; Then you could do something like: tt_entry transposition_table[N...
by odomobo
Wed Dec 19, 2018 4:20 am
Forum: Computer Chess Club: Programming and Technical Discussions
Topic: new axolotl!
Replies: 10
Views: 1420

Re: new axolotl!

I thought about it, and you can back your transposition table by a single array of longs, where even indexes are keys, and odd indexes are the corresponding entries. This means every tt lookup will be a single cache miss instead of 2. However, I think your engine would need to be quite a bit faster ...
by odomobo
Mon Dec 17, 2018 8:59 am
Forum: Computer Chess Club: Programming and Technical Discussions
Topic: new axolotl!
Replies: 10
Views: 1420

Re: new axolotl!

Looking good! As far as performance goes, you'll need to use a profiler to see where your slowdowns are happening. There's really no way around it. Otherwise, you're stumbling around in the dark. It pains me to see that your transposition table is backed by 2 arrays of longs, but unfortunately this ...
by odomobo
Thu Nov 22, 2018 2:52 am
Forum: Computer Chess Club: Programming and Technical Discussions
Topic: new Engine, Axolotl
Replies: 31
Views: 4709

Re: new Engine, Axolotl

I didn't run the engine, but I have some notes from reading the source code: This may seem obvious, but run the engine with profiling to find out where it's spending most of its time. This is necessary before attempting any optimization. Instead of returning ArrayList objects from each of your move ...
by odomobo
Tue Oct 30, 2018 5:31 pm
Forum: Computer Chess Club: Programming and Technical Discussions
Topic: std::cout or printf
Replies: 27
Views: 4889

Re: std::cout or printf

Rein Halbersma wrote:
Sun Oct 28, 2018 2:09 pm
I’ve been wanting to try https://github.com/fmtlib/fmt
There is an ongoing attempt to have this in the next C++ Standard.
I use it in my engine, and it's great, highly recommended.