Prolog "tandem"
Admin User, created Mar 14. 2025
/**
* Warranty & Liability
* To the extent permitted by applicable law and unless explicitly
* otherwise agreed upon, XLOG Technologies AG makes no warranties
* regarding the provided information. XLOG Technologies AG assumes
* no liability that any problems might be solved with the information
* provided by XLOG Technologies AG.
*
* Rights & License
* All industrial property rights regarding the information - copyright
* and patent rights in particular - are the sole property of XLOG
* Technologies AG. If the company was not the originator of some
* excerpts, XLOG Technologies AG has at least obtained the right to
* reproduce, change and translate the information.
*
* Reproduction is restricted to the whole unaltered document. Reproduction
* of the information is only allowed for non-commercial uses. Selling,
* giving away or letting of the execution of the library is prohibited.
* The library can be distributed as part of your applications and libraries
* for execution provided this comment remains unchanged.
*
* Restrictions
* Only to be distributed with programs that add significant and primary
* functionality to the library. Not to be distributed with additional
* software intended to replace any components of the library.
*
* Trademarks
* Jekejeke is a registered trademark of XLOG Technologies AG.
*/
:- ensure_loaded(library(edge/noise)).
:- ensure_loaded(library(tester/plot)).
:- ensure_loaded(library(misc/react)).
/***************************************************************/
/* Visualize */
/***************************************************************/
% noise_train_list2(+List, +Atom, +Integer, +Integer, +List, -List, -List)
noise_train_list2(E, Z, N, I, T, B) :-
noise_recon_list(N, E, Z, S, C),
noise_visual2([S], I),
sys_noise_improve_list2(I, N, E, Z, S, C, [S], T, B).
% sys_noise_improve_list2(+Integer, +Integer, +List, +Atom, +Integer, +List, +List, -List, -List)
sys_noise_improve_list2(0, _, E, _, S, _, _, S, E) :- !.
sys_noise_improve_list2(_, _, E, _, 0, _, _, 0, E) :- !.
sys_noise_improve_list2(I, N, E, Z, S, C, L, R, G) :-
sys_noise_blame_list(E, Z, S, C, F),
J is I-1,
noise_recon_list(N, F, Z, T, D),
noise_visual2([T|L], J),
sys_noise_improve_list2(J, N, F, Z, T, D, [T|L], R, G).
% noise_visual2(+List, +Integer)
noise_visual2([T|L], I) :- (T = 0; I mod 10 =:= 0), !,
length([T|L], N),
findall([X2,Y], (nth1(X1,[T|L],Y), X2 is N-X1), D),
clear,
K is I+N-1,
plot(D, [height(50),width(100),maxx(K),miny(0),mark('')]).
noise_visual2(_, _).
/***************************************************************/
/* Tandem */
/***************************************************************/
% noise_train_list3(+List, +Atom, +Atom, +Integer, +Integer, +List, -List, -List)
noise_train_list3(E, Z, U, M, I, T, B) :-
noise_recon_list(M, E, Z, S, C),
noise_recon_list(M, E, U, V, _),
noise_visual3([S-V], I),
sys_noise_improve_list3(I, M, E, Z, U, S, C, [S-V], T, B).
% sys_noise_improve_list3(+Integer, +Integer, +List, +Atom, +Atom, +Integer, +Integer, +List, -List, -List)
sys_noise_improve_list3(0, _, E, _, _, S, _, _, S, E) :- !.
sys_noise_improve_list3(_, _, E, _, _, 0, _, _, 0, E) :- !.
sys_noise_improve_list3(I, M, E, Z, U, S, C, L, R, G) :-
sys_noise_blame_list(E, Z, S, C, F),
J is I-1,
noise_recon_list(M, F, Z, T, D),
noise_recon_list(M, F, U, V, _),
noise_visual3([T-V|L], J),
sys_noise_improve_list3(J, M, F, Z, U, T, D, [T-V|L], R, G).
% noise_visual3(+List, +Integer)
noise_visual3([T-V|L], I) :- (T = 0; I mod 10 =:= 0), !,
length([T-V|L], N),
findall([X2,Y1,Y2], (nth1(X1,[T-V|L],Y1-Y2), X2 is N-X1), D),
clear,
K is I+N-1,
plot(D, [height(50),width(100),maxx(K),miny(0),mark('')]).
noise_visual3(_, _).