// File: jmmccracken[P]PAI/ccmth.cpp
// Function: CmdLineHelp(char*)
void CmdLineHelp(char* cName){

    printf("usage: %s <command line flags>\n\n",cName);
    printf("basic command line flags:\n");
    printf("  -E [integer]  : embedding dimension (ignored if using -FindLag or -FindE)\n");
    printf("  -t [integer]  : lag time step (ignored if using -FindLag)\n");
    printf("  -L [integer]  : library length of the time series\n");
    printf("                 (assumed to be equal for X and Y)\n");
    printf("  -f [string]   : filename of a text file containing time series\n");
    printf("                 data for X and Y with columns seperated by\n");
    printf("                 commas and rows seperated by semicolons \n");
    printf("                 (it is assumed that there are only X and Y\n");
    printf("                 in the file, i.e. only two columns)\n");
    printf("  -n [integer]  : number of time series in the -f file\n");
    printf("  -p [integer]  : number of threads to use (default is zero)\n");
    printf("  -o [string]   : filename of the output text file\n");
    printf("  -Op [integer] : 'optimize' threading check time\n");
    printf("  -v            : flag that sends various bits of information to STDOUT\n");
    printf("  -eY [string]  : filename of a text file containing the estimated time series\n");
    printf("  -PAI          : this flag calculates the pairwise asymmetric inference\n");
    printf("                      (see new output format below)\n");
    printf("  -L2           : this flag calculates the L2 norm (Euclidean norm)\n");
    printf("                      instead of the CCM correlation\n");
    printf("  -Ey           : embedding dimension for Y (ignored if not using -PAI)\n");
    printf("  -ty           : lag time step for Y (ignored if not using -PAI)\n");
    printf("Flag for finding lag time to use for embedding:\n");
    printf("  -FindLag [integer1] [integer2]\n");
    printf("     [integer1] : maximum autocorrelation lag time to check\n");
    printf("     [integer2] : comparison tolerance for autocorrelation checks\n");
    printf("  NOTE: This flag will cause the [-o] output file contents to be the \n");
    printf("        lag time step leading to the maximum autocorrelation\n");
    printf("        (within the user defined bounds)\n");
    printf("Flag for finding embedding dimension to use for embedding:\n");
    printf("  -FindE [integer1] [integer2]\n");
    printf("     [integer1] : maximum number of time steps to check\n");
    printf("     [integer2] : cutoff tolerance for weight checks\n");
    printf("  NOTE: This flag will cause the [-o] output file contents to be the \n");
    printf("        mode of cutoff embedding dimensions for requested time steps\n");
    printf("        (within the user defined bounds)\n");
    printf("input data file format:\n");
    printf("   X0,Y0;\n");
    printf("   X1,Y1;\n");
    printf("   X2,Y2;\n");
    printf("   X3,Y3;\n");
    printf("   X4,Y4;\n");
    printf("   ...\n");
    printf("[-o] output data file format:\n");
    printf("   CCM(X,Y),CCM(Y,X) [time series 1]\n");
    printf("   CCM(X,Y),CCM(Y,X) [time series 2]\n");
    printf("   ...\n");
    printf("[-o] output data file format (w/ PAI flag):\n");
    printf("   CCM(X,X),CCM(X,X and Y),CCM(Y,Y),CCM(Y,Y and X) [time series 1]\n");
    printf("   CCM(X,X),CCM(X,X and Y),CCM(Y,Y),CCM(Y,Y and X) [time series 2]\n");
    printf("   ...\n");
    printf(" NOTE: The contents of the [-o] output file depends on the flags used.\n");
    printf("[-eY] output data file format:\n");
    printf("   estimated X0\n");
    printf("   estimated X1\n");
    printf("   estimated X2\n");
    printf("   estimated X3\n");
    printf("   estimated X4\n");
    printf("   ...\n");
    printf("   estimated Y0\n");
    printf("   estimated Y1\n");
    printf("   estimated Y2\n");
    printf("   estimated Y3\n");
    printf("   estimated Y4\n");
    printf("   ...\n");
    printf("[-eY] output data file format (w/ PAI flag):\n");
    printf("   estimated X0 (given X)\n");
    printf("   estimated X1 (given X)\n");
    printf("   estimated X2 (given X)\n");
    printf("   estimated X3 (given X)\n");
    printf("   estimated X4 (given X)\n");
    printf("   ...\n");
    printf("   estimated X0 (given X and Y)\n");
    printf("   estimated X1 (given X and Y)\n");
    printf("   estimated X2 (given X and Y)\n");
    printf("   estimated X3 (given X and Y)\n");
    printf("   estimated X4 (given X and Y)\n");
    printf("   ...\n");
    printf("   estimated Y0 (given Y)\n");
    printf("   estimated Y1 (given Y)\n");
    printf("   estimated Y2 (given Y)\n");
    printf("   estimated Y3 (given Y)\n");
    printf("   estimated Y4 (given Y)\n");
    printf("   ...\n");
    printf("   estimated Y0 (given Y and X)\n");
    printf("   estimated Y1 (given Y and X)\n");
    printf("   estimated Y2 (given Y and X)\n");
    printf("   estimated Y3 (given Y and X)\n");
    printf("   estimated Y4 (given Y and X)\n");
    printf("   ...\n");
    printf("\nMore details can be found at https://github.com/<githubaccount>/...\n");

}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x10, %rsp
movq %rdi, -0x8(%rbp)
movq -0x8(%rbp), %rsi
leaq 0x8600(%rip), %rdi      # 0x106c7
movb $0x0, %al
callq 0x3040
leaq 0x8613(%rip), %rdi      # 0x106e8
movb $0x0, %al
callq 0x3040
leaq 0x8620(%rip), %rdi      # 0x10703
movb $0x0, %al
callq 0x3040
leaq 0x865f(%rip), %rdi      # 0x10750
movb $0x0, %al
callq 0x3040
leaq 0x868e(%rip), %rdi      # 0x1078d
movb $0x0, %al
callq 0x3040
leaq 0x86b5(%rip), %rdi      # 0x107c2
movb $0x0, %al
callq 0x3040
leaq 0x86db(%rip), %rdi      # 0x107f6
movb $0x0, %al
callq 0x3040
leaq 0x870f(%rip), %rdi      # 0x10838
movb $0x0, %al
callq 0x3040
leaq 0x873e(%rip), %rdi      # 0x10875
movb $0x0, %al
callq 0x3040
leaq 0x876b(%rip), %rdi      # 0x108b0
movb $0x0, %al
callq 0x3040
leaq 0x879a(%rip), %rdi      # 0x108ed
movb $0x0, %al
callq 0x3040
leaq 0x87c2(%rip), %rdi      # 0x10923
movb $0x0, %al
callq 0x3040
leaq 0x87ec(%rip), %rdi      # 0x1095b
movb $0x0, %al
callq 0x3040
leaq 0x881c(%rip), %rdi      # 0x10999
movb $0x0, %al
callq 0x3040
leaq 0x8842(%rip), %rdi      # 0x109cd
movb $0x0, %al
callq 0x3040
leaq 0x8867(%rip), %rdi      # 0x10a00
movb $0x0, %al
callq 0x3040
leaq 0x88a2(%rip), %rdi      # 0x10a49
movb $0x0, %al
callq 0x3040
leaq 0x88e4(%rip), %rdi      # 0x10a99
movb $0x0, %al
callq 0x3040
leaq 0x8920(%rip), %rdi      # 0x10ae3
movb $0x0, %al
callq 0x3040
leaq 0x8947(%rip), %rdi      # 0x10b18
movb $0x0, %al
callq 0x3040
leaq 0x897e(%rip), %rdi      # 0x10b5d
movb $0x0, %al
callq 0x3040
leaq 0x89a6(%rip), %rdi      # 0x10b93
movb $0x0, %al
callq 0x3040
leaq 0x89e1(%rip), %rdi      # 0x10bdc
movb $0x0, %al
callq 0x3040
leaq 0x8a16(%rip), %rdi      # 0x10c1f
movb $0x0, %al
callq 0x3040
leaq 0x8a39(%rip), %rdi      # 0x10c50
movb $0x0, %al
callq 0x3040
leaq 0x8a4d(%rip), %rdi      # 0x10c72
movb $0x0, %al
callq 0x3040
leaq 0x8a7c(%rip), %rdi      # 0x10caf
movb $0x0, %al
callq 0x3040
leaq 0x8ab1(%rip), %rdi      # 0x10cf2
movb $0x0, %al
callq 0x3040
leaq 0x8aea(%rip), %rdi      # 0x10d39
movb $0x0, %al
callq 0x3040
leaq 0x8b1a(%rip), %rdi      # 0x10d77
movb $0x0, %al
callq 0x3040
leaq 0x8b36(%rip), %rdi      # 0x10da1
movb $0x0, %al
callq 0x3040
leaq 0x8b64(%rip), %rdi      # 0x10ddd
movb $0x0, %al
callq 0x3040
leaq 0x8b76(%rip), %rdi      # 0x10dfd
movb $0x0, %al
callq 0x3040
leaq 0x8ba1(%rip), %rdi      # 0x10e36
movb $0x0, %al
callq 0x3040
leaq 0x8a4f(%rip), %rdi      # 0x10cf2
movb $0x0, %al
callq 0x3040
leaq 0x8bbb(%rip), %rdi      # 0x10e6c
movb $0x0, %al
callq 0x3040
leaq 0x8ab8(%rip), %rdi      # 0x10d77
movb $0x0, %al
callq 0x3040
leaq 0x8be5(%rip), %rdi      # 0x10eb2
movb $0x0, %al
callq 0x3040
leaq 0x8bf0(%rip), %rdi      # 0x10ecb
movb $0x0, %al
callq 0x3040
leaq 0x8bed(%rip), %rdi      # 0x10ed6
movb $0x0, %al
callq 0x3040
leaq 0x8bea(%rip), %rdi      # 0x10ee1
movb $0x0, %al
callq 0x3040
leaq 0x8be7(%rip), %rdi      # 0x10eec
movb $0x0, %al
callq 0x3040
leaq 0x8be4(%rip), %rdi      # 0x10ef7
movb $0x0, %al
callq 0x3040
leaq 0x8be1(%rip), %rdi      # 0x10f02
movb $0x0, %al
callq 0x3040
leaq 0x8bdb(%rip), %rdi      # 0x10f0a
movb $0x0, %al
callq 0x3040
leaq 0x8bec(%rip), %rdi      # 0x10f29
movb $0x0, %al
callq 0x3040
leaq 0x8c04(%rip), %rdi      # 0x10f4f
movb $0x0, %al
callq 0x3040
leaq 0x8ba9(%rip), %rdi      # 0x10f02
movb $0x0, %al
callq 0x3040
leaq 0x8c0e(%rip), %rdi      # 0x10f75
movb $0x0, %al
callq 0x3040
leaq 0x8c2d(%rip), %rdi      # 0x10fa2
movb $0x0, %al
callq 0x3040
leaq 0x8c63(%rip), %rdi      # 0x10fe6
movb $0x0, %al
callq 0x3040
leaq 0x8b71(%rip), %rdi      # 0x10f02
movb $0x0, %al
callq 0x3040
leaq 0x8c8b(%rip), %rdi      # 0x1102a
movb $0x0, %al
callq 0x3040
leaq 0x8cc5(%rip), %rdi      # 0x11072
movb $0x0, %al
callq 0x3040
leaq 0x8cd7(%rip), %rdi      # 0x11092
movb $0x0, %al
callq 0x3040
leaq 0x8cda(%rip), %rdi      # 0x110a3
movb $0x0, %al
callq 0x3040
leaq 0x8cdd(%rip), %rdi      # 0x110b4
movb $0x0, %al
callq 0x3040
leaq 0x8ce0(%rip), %rdi      # 0x110c5
movb $0x0, %al
callq 0x3040
leaq 0x8ce3(%rip), %rdi      # 0x110d6
movb $0x0, %al
callq 0x3040
leaq 0x8b01(%rip), %rdi      # 0x10f02
movb $0x0, %al
callq 0x3040
leaq 0x8cd8(%rip), %rdi      # 0x110e7
movb $0x0, %al
callq 0x3040
leaq 0x8cdb(%rip), %rdi      # 0x110f8
movb $0x0, %al
callq 0x3040
leaq 0x8cde(%rip), %rdi      # 0x11109
movb $0x0, %al
callq 0x3040
leaq 0x8ce1(%rip), %rdi      # 0x1111a
movb $0x0, %al
callq 0x3040
leaq 0x8ce4(%rip), %rdi      # 0x1112b
movb $0x0, %al
callq 0x3040
leaq 0x8aad(%rip), %rdi      # 0x10f02
movb $0x0, %al
callq 0x3040
leaq 0x8cd9(%rip), %rdi      # 0x1113c
movb $0x0, %al
callq 0x3040
leaq 0x8cf9(%rip), %rdi      # 0x1116a
movb $0x0, %al
callq 0x3040
leaq 0x8d06(%rip), %rdi      # 0x11185
movb $0x0, %al
callq 0x3040
leaq 0x8d13(%rip), %rdi      # 0x111a0
movb $0x0, %al
callq 0x3040
leaq 0x8d20(%rip), %rdi      # 0x111bb
movb $0x0, %al
callq 0x3040
leaq 0x8d2d(%rip), %rdi      # 0x111d6
movb $0x0, %al
callq 0x3040
leaq 0x8a4b(%rip), %rdi      # 0x10f02
movb $0x0, %al
callq 0x3040
leaq 0x8d2c(%rip), %rdi      # 0x111f1
movb $0x0, %al
callq 0x3040
leaq 0x8d3f(%rip), %rdi      # 0x11212
movb $0x0, %al
callq 0x3040
leaq 0x8d52(%rip), %rdi      # 0x11233
movb $0x0, %al
callq 0x3040
leaq 0x8d65(%rip), %rdi      # 0x11254
movb $0x0, %al
callq 0x3040
leaq 0x8d78(%rip), %rdi      # 0x11275
movb $0x0, %al
callq 0x3040
leaq 0x89f7(%rip), %rdi      # 0x10f02
movb $0x0, %al
callq 0x3040
leaq 0x8d7d(%rip), %rdi      # 0x11296
movb $0x0, %al
callq 0x3040
leaq 0x8d8a(%rip), %rdi      # 0x112b1
movb $0x0, %al
callq 0x3040
leaq 0x8d97(%rip), %rdi      # 0x112cc
movb $0x0, %al
callq 0x3040
leaq 0x8da4(%rip), %rdi      # 0x112e7
movb $0x0, %al
callq 0x3040
leaq 0x8db1(%rip), %rdi      # 0x11302
movb $0x0, %al
callq 0x3040
leaq 0x89a3(%rip), %rdi      # 0x10f02
movb $0x0, %al
callq 0x3040
leaq 0x8db0(%rip), %rdi      # 0x1131d
movb $0x0, %al
callq 0x3040
leaq 0x8dc3(%rip), %rdi      # 0x1133e
movb $0x0, %al
callq 0x3040
leaq 0x8dd6(%rip), %rdi      # 0x1135f
movb $0x0, %al
callq 0x3040
leaq 0x8de9(%rip), %rdi      # 0x11380
movb $0x0, %al
callq 0x3040
leaq 0x8dfc(%rip), %rdi      # 0x113a1
movb $0x0, %al
callq 0x3040
leaq 0x894f(%rip), %rdi      # 0x10f02
movb $0x0, %al
callq 0x3040
leaq 0x8e01(%rip), %rdi      # 0x113c2
movb $0x0, %al
callq 0x3040
addq $0x10, %rsp
popq %rbp
retq
nop