entities – Entity reference to another instance of the same type

Let’s say we have a custom thing entity type, and we want to have a custom related_thing field in the entity which describes a relationship of some sort with other things. The custom field has several properties, indicating the nature of the relationship, when the relationship was recorded, who recorded it, and an entity reference to the other thing. As far as I can tell, Drupal won’t allow setting the target_type of the entity_reference property in the propertyDefinitions() method, as long as the custom field is being defined in the module in which the custom thing entity type is created, right? So is the only way to get around this circular dependency problem to have a second custom module which depends on the module where thing is defined, and creates the custom related_thing field, and then modifies the thing entity type in a hook, adding the custom field?

reference request – Explicit homotopy for Hochschild chains from natural isomorphism

Let $A,B$ be $k$-linear (possibly, dg-)categories, let $f,g:Ato B$ be two linear functors, and let $T:fRightarrow g$ be a natural isomorphism.

If one denotes by $C_bullet(A,A)$ the standard Hochschild chain complex of $A$ with coefficients in itself, then $f$ and $g$ induce two chain maps $mathbf{f},mathbf{g}:C_bullet(A,A)to C_bullet(B,B)$.

One knows from general facts about the homotopy theory of dg-categories that there exists a homotopy $mathbf{T}$ between $mathbf{f}$ and $mathbf{g}$.

Here is my question: Is there a reference where one can find an explicit expression for this homotopy?

Ideally, I’d like a reference where the compatibility with the mixed structure on Hochschild chains (that is, with Connes’ boundary operator) is discussed.

One can of course guess (and, with some work, prove) a formula. I’m almost sure such a formula is already written somewhere, but I couldn’t find a reference.

Note that I’d already be happy to know about a reference for (dg-)algebras (in which case a natural isomorphism $T:fRightarrow g$ is just the data of an invertible element $b$ of $B$ such that for every $ain A$, $bf(a)=g(a)b$).

Seeking reference on monomial curves

I am looking for survey articles, lecture notes, or any other material that could be the starting point to explore known results and open questions in the theory related to monomial curves. Thank you.

bitcoin core development – so many “undefined reference to” after I add some codes, how to solve it?

I am just want to modify the hash algorithm of bitcoin-0.20 and I want to replace the previous hash algorithm to the x13hash algorithm. So I modify the source below,

1, I add the x13hash files to the bitcoin-0.20/src/crypto/x13hash, there are files below:

aes_helper.c  bmw.c       echo.c   groestl.c  hamsi_helper.c  keccak.c  shavite.c  skein.c  sph_blake.h  sph_cubehash.h  sph_fugue.h    sph_hamsi.h  sph_keccak.h  sph_shavite.h  sph_skein.h  sph_types.h
blake.c       cubehash.c  fugue.c  hamsi.c    jh.c            luffa.c   simd.c     sm3.c    sph_bmw.h    sph_echo.h      sph_groestl.h  sph_jh.h     sph_luffa.h   sph_simd.h     sph_sm3.h

2, I add a new function in block.h below

class CBlockHeader
{
public:
    // header
    int32_t nVersion;
    uint256 hashPrevBlock;
    uint256 hashMerkleRoot;
    uint32_t nTime;
    uint32_t nBits;
    uint32_t nNonce;

    CBlockHeader()
    {
        SetNull();
    }

    ADD_SERIALIZE_METHODS;

    template <typename Stream, typename Operation>
    inline void SerializationOp(Stream& s, Operation ser_action) {
        READWRITE(this->nVersion);
        READWRITE(hashPrevBlock);
        READWRITE(hashMerkleRoot);
        READWRITE(nTime);
        READWRITE(nBits);
        READWRITE(nNonce);
    }

    void SetNull()
    {
        nVersion = 0;
        hashPrevBlock.SetNull();
        hashMerkleRoot.SetNull();
        nTime = 0;
        nBits = 0;
        nNonce = 0;
    }

    bool IsNull() const
    {
        return (nBits == 0);
    }

    uint256 GetHash() const;
    uint256 GetNewPoWHash() const; //new hash function

    int64_t GetBlockTime() const
    {
        return (int64_t)nTime;
    }
};

3, add the function in block.cpp

#include <hash.h>
#include <tinyformat.h>

#define BEGIN(a)            ((char*)&(a))
#define END(a)              ((char*)&((&(a))(1)))
#define UBEGIN(a)           ((unsigned char*)&(a))
#define UEND(a)             ((unsigned char*)&((&(a))(1)))
#define ARRAYLEN(array)     (sizeof(array)/sizeof((array)(0)))

uint256 CBlockHeader::GetHash() const
{
    return SerializeHash(*this);
}
uint256 CBlockHeader::GetNewPoWHash() const //new !! 
{   
    return HashX13sm3(BEGIN(nVersion), END(nNonce));
}
  1. modify the hash.h below:

     #include <vector>
     // added new
     #include "crypto/x13hash/sph_blake.h"
     #include "crypto/x13hash/sph_bmw.h"
     #include "crypto/x13hash/sph_groestl.h"
     #include "crypto/x13hash/sph_jh.h"
     #include "crypto/x13hash/sph_keccak.h"
     #include "crypto/x13hash/sph_skein.h"
     #include "crypto/x13hash/sph_luffa.h"
     #include "crypto/x13hash/sph_cubehash.h"
     #include "crypto/x13hash/sph_shavite.h"
     #include "crypto/x13hash/sph_simd.h"
     #include "crypto/x13hash/sph_echo.h"
     #include "crypto/x13hash/sph_hamsi.h"
     #include "crypto/x13hash/sph_fugue.h"
     #include "crypto/x13hash/sph_sm3.h"
    
     #ifdef GLOBALDEFINED
     #define GLOBAL
     #else
     #define GLOBAL extern
     #endif
    
     GLOBAL sph_blake512_context     z_blake;
     GLOBAL sph_bmw512_context       z_bmw;
     GLOBAL sph_groestl512_context   z_groestl;
     GLOBAL sph_jh512_context        z_jh;
     GLOBAL sph_keccak512_context    z_keccak;
     GLOBAL sph_skein512_context     z_skein;
     GLOBAL sph_luffa512_context     z_luffa;
     GLOBAL sph_cubehash512_context  z_cubehash;
     GLOBAL sph_shavite512_context   z_shavite;
     GLOBAL sph_simd512_context      z_simd;
     GLOBAL sph_echo512_context      z_echo;
     GLOBAL sph_hamsi512_context     z_hamsi;
     GLOBAL sph_fugue512_context     z_fugue;
     #define fillz() do { 
         sph_blake512_init(&z_blake); 
         sph_bmw512_init(&z_bmw); 
         sph_groestl512_init(&z_groestl); 
         sph_jh512_init(&z_jh); 
         sph_keccak512_init(&z_keccak); 
         sph_skein512_init(&z_skein); 
         sph_luffa512_init(&z_luffa); 
         sph_cubehash512_init(&z_cubehash); 
         sph_shavite512_init(&z_shavite); 
         sph_simd512_init(&z_simd); 
         sph_echo512_init(&z_echo); 
         sph_hamsi512_init(&z_hamsi); 
         sph_fugue512_init(&z_fugue); 
     } while (0) 
     typedef uint256 ChainCode;
     template<typename T1>
    

    inline uint256 HashX13(const T1 pbegin, const T1 pend)

    {
    sph_blake512_context ctx_blake;
    sph_bmw512_context ctx_bmw;
    sph_groestl512_context ctx_groestl;
    sph_jh512_context ctx_jh;
    sph_keccak512_context ctx_keccak;
    sph_skein512_context ctx_skein;
    sph_luffa512_context ctx_luffa;
    sph_cubehash512_context ctx_cubehash;
    sph_shavite512_context ctx_shavite;
    sph_simd512_context ctx_simd;
    sph_echo512_context ctx_echo;
    sph_hamsi512_context ctx_hamsi;
    sph_fugue512_context ctx_fugue;
    static unsigned char pblank(1);

    #ifndef QT_NO_DEBUG
    //std::string strhash;
    //strhash = “”;
    #endif

     uint256 hash(34);
    
     sph_blake512_init(&ctx_blake);
     sph_blake512 (&ctx_blake, (pbegin == pend ? pblank : static_cast<const void*>(&pbegin(0))), (pend - pbegin) * sizeof(pbegin(0)));
     sph_blake512_close(&ctx_blake, static_cast<void*>(&hash(0)));
    
     sph_bmw512_init(&ctx_bmw);
     sph_bmw512 (&ctx_bmw, static_cast<const void*>(&hash(0)), 64);
     sph_bmw512_close(&ctx_bmw, static_cast<void*>(&hash(2)));
    
     sph_groestl512_init(&ctx_groestl);
     sph_groestl512 (&ctx_groestl, static_cast<const void*>(&hash(2)), 64);
     sph_groestl512_close(&ctx_groestl, static_cast<void*>(&hash(4)));
    
     sph_skein512_init(&ctx_skein);
     sph_skein512 (&ctx_skein, static_cast<const void*>(&hash(4)), 64);
     sph_skein512_close(&ctx_skein, static_cast<void*>(&hash(6)));
    
     sph_jh512_init(&ctx_jh);
     sph_jh512 (&ctx_jh, static_cast<const void*>(&hash(6)), 64);
     sph_jh512_close(&ctx_jh, static_cast<void*>(&hash(8)));
    
     sph_keccak512_init(&ctx_keccak);
     sph_keccak512 (&ctx_keccak, static_cast<const void*>(&hash(8)), 64);
     sph_keccak512_close(&ctx_keccak, static_cast<void*>(&hash(10)));
    
     sph_luffa512_init(&ctx_luffa);
     sph_luffa512 (&ctx_luffa, static_cast<void*>(&hash(10)), 64);
     sph_luffa512_close(&ctx_luffa, static_cast<void*>(&hash(12)));
    
     sph_cubehash512_init(&ctx_cubehash);
     sph_cubehash512 (&ctx_cubehash, static_cast<const void*>(&hash(12)), 64);
     sph_cubehash512_close(&ctx_cubehash, static_cast<void*>(&hash(14)));
    
     sph_shavite512_init(&ctx_shavite);
     sph_shavite512(&ctx_shavite, static_cast<const void*>(&hash(14)), 64);
     sph_shavite512_close(&ctx_shavite, static_cast<void*>(&hash(16)));
    
     sph_simd512_init(&ctx_simd);
     sph_simd512 (&ctx_simd, static_cast<const void*>(&hash(16)), 64);
     sph_simd512_close(&ctx_simd, static_cast<void*>(&hash(18)));
    
     sph_echo512_init(&ctx_echo);
     sph_echo512 (&ctx_echo, static_cast<const void*>(&hash(18)), 64);
     sph_echo512_close(&ctx_echo, static_cast<void*>(&hash(20)));
    
     sph_hamsi512_init(&ctx_hamsi);
     sph_hamsi512 (&ctx_hamsi, static_cast<const void*>(&hash(20)), 64);
     sph_hamsi512_close(&ctx_hamsi, static_cast<void*>(&hash(22)));
    
     sph_fugue512_init(&ctx_fugue);
     sph_fugue512 (&ctx_fugue, static_cast<const void*>(&hash(22)), 64);
     sph_fugue512_close(&ctx_fugue, static_cast<void*>(&hash(24)));
    
    
     return hash(24);
    

    }

template
inline uint256 HashX13sm3(const T1 pbegin, const T1 pend)
{
sph_blake512_context ctx_blake;
sph_bmw512_context ctx_bmw;
sph_groestl512_context ctx_groestl;
sph_jh512_context ctx_jh;
sph_keccak512_context ctx_keccak;
sph_skein512_context ctx_skein;
sm3_ctx_t ctx_sm3;
sph_cubehash512_context ctx_cubehash;
sph_shavite512_context ctx_shavite;
sph_simd512_context ctx_simd;
sph_echo512_context ctx_echo;
sph_hamsi512_context ctx_hamsi;
sph_fugue512_context ctx_fugue;
static unsigned char pblank(1);

#ifndef QT_NO_DEBUG
//std::string strhash;
//strhash = “”;
#endif

uint256 hash(34);

sph_blake512_init(&ctx_blake);
sph_blake512 (&ctx_blake, (pbegin == pend ? pblank : static_cast<const void*>(&pbegin(0))), (pend - pbegin) * sizeof(pbegin(0)));
sph_blake512_close(&ctx_blake, static_cast<void*>(&hash(0)));

sph_bmw512_init(&ctx_bmw);
sph_bmw512 (&ctx_bmw, static_cast<const void*>(&hash(0)), 64);
sph_bmw512_close(&ctx_bmw, static_cast<void*>(&hash(2)));

    sph_groestl512_init(&ctx_groestl);
    sph_groestl512 (&ctx_groestl, static_cast<const void*>(&hash(2)), 64);
    sph_groestl512_close(&ctx_groestl, static_cast<void*>(&hash(4)));

    sph_skein512_init(&ctx_skein);
    sph_skein512 (&ctx_skein, static_cast<const void*>(&hash(4)), 64);
    sph_skein512_close(&ctx_skein, static_cast<void*>(&hash(6)));

    sph_jh512_init(&ctx_jh);
    sph_jh512 (&ctx_jh, static_cast<const void*>(&hash(6)), 64);
    sph_jh512_close(&ctx_jh, static_cast<void*>(&hash(8)));

    sph_keccak512_init(&ctx_keccak);
    sph_keccak512 (&ctx_keccak, static_cast<const void*>(&hash(8)), 64);
    sph_keccak512_close(&ctx_keccak, static_cast<void*>(&hash(10)));

    hash(12).SetNull(); //sm3 is 256bit, just in case
    hash(13).SetNull();
    sm3_init(&ctx_sm3);
    sph_sm3(&ctx_sm3, static_cast<const void*>(&hash(10)), 64);
    sph_sm3_close(&ctx_sm3, static_cast<void*>(&hash(12)));

    sph_cubehash512_init(&ctx_cubehash);
    sph_cubehash512 (&ctx_cubehash, static_cast<const void*>(&hash(12)), 64);
    sph_cubehash512_close(&ctx_cubehash, static_cast<void*>(&hash(14)));

    sph_shavite512_init(&ctx_shavite);
    sph_shavite512(&ctx_shavite, static_cast<const void*>(&hash(14)), 64);
    sph_shavite512_close(&ctx_shavite, static_cast<void*>(&hash(16)));

    sph_simd512_init(&ctx_simd);
    sph_simd512 (&ctx_simd, static_cast<const void*>(&hash(16)), 64);
    sph_simd512_close(&ctx_simd, static_cast<void*>(&hash(18)));

    sph_echo512_init(&ctx_echo);
    sph_echo512 (&ctx_echo, static_cast<const void*>(&hash(18)), 64);
    sph_echo512_close(&ctx_echo, static_cast<void*>(&hash(20)));

    sph_hamsi512_init(&ctx_hamsi);
    sph_hamsi512 (&ctx_hamsi, static_cast<const void*>(&hash(20)), 64);
    sph_hamsi512_close(&ctx_hamsi, static_cast<void*>(&hash(22)));

    sph_fugue512_init(&ctx_fugue);
    sph_fugue512 (&ctx_fugue, static_cast<const void*>(&hash(22)), 64);
    sph_fugue512_close(&ctx_fugue, static_cast<void*>(&hash(24)));


    return hash(24);
} /* added new above */
typedef uint256 ChainCode;  

Finally then I make again ,it shows error below:

CXX      script/libbitcoin_common_a-descriptor.o
  CXX      script/libbitcoin_common_a-sign.o
  CXX      script/libbitcoin_common_a-signingprovider.o
  CXX      script/libbitcoin_common_a-standard.o
  AR       libbitcoin_util.a
  AR       libbitcoin_consensus.a
  AR       libbitcoin_wallet_tool.a
  AR       libtest_util.a
  CXXLD    libbitcoinconsensus.la
  AR       libbitcoin_server.a
  AR       libbitcoin_wallet.a
  AR       libbitcoin_common.a
  CXXLD    bitcoin-cli
  CXXLD    bitcoin-tx
  CXXLD    bitcoin-wallet
  CXXLD    bitcoind
  CXXLD    test/test_bitcoin
/usr/bin/ld: libbitcoin_consensus.a(libbitcoin_consensus_a-block.o): in function `uint256 HashX13sm3<char*>(char*, char*)':
/home/gilsun91/bitcoin-0.20/src/./hash.h:178: undefined reference to `sph_blake512_init'
/usr/bin/ld: /home/gilsun91/bitcoin-0.20/src/./hash.h:179: undefined reference to `sph_blake512'
/usr/bin/ld: /home/gilsun91/bitcoin-0.20/src/./hash.h:180: undefined reference to `sph_blake512_close'
/usr/bin/ld: /home/gilsun91/bitcoin-0.20/src/./hash.h:182: undefined reference to `sph_bmw512_init'
/usr/bin/ld: /home/gilsun91/bitcoin-0.20/src/./hash.h:183: undefined reference to `sph_bmw512'
/usr/bin/ld: /home/gilsun91/bitcoin-0.20/src/./hash.h:184: undefined reference to `sph_bmw512_close'
/usr/bin/ld: /home/gilsun91/bitcoin-0.20/src/./hash.h:186: undefined reference to `sph_groestl512_init'
/usr/bin/ld: /home/gilsun91/bitcoin-0.20/src/./hash.h:187: undefined reference to `sph_groestl512'
/usr/bin/ld: /home/gilsun91/bitcoin-0.20/src/./hash.h:188: undefined reference to `sph_groestl512_close'
/usr/bin/ld: /home/gilsun91/bitcoin-0.20/src/./hash.h:190: undefined reference to `sph_skein512_init'
/usr/bin/ld: /home/gilsun91/bitcoin-0.20/src/./hash.h:191: undefined reference to `sph_skein512'
/usr/bin/ld: /home/gilsun91/bitcoin-0.20/src/./hash.h:192: undefined reference to `sph_skein512_close'
/usr/bin/ld: /home/gilsun91/bitcoin-0.20/src/./hash.h:194: undefined reference to `sph_jh512_init'
/usr/bin/ld: /home/gilsun91/bitcoin-0.20/src/./hash.h:195: undefined reference to `sph_jh512'
/usr/bin/ld: /home/gilsun91/bitcoin-0.20/src/./hash.h:196: undefined reference to `sph_jh512_close'
/usr/bin/ld: /home/gilsun91/bitcoin-0.20/src/./hash.h:198: undefined reference to `sph_keccak512_init'
/usr/bin/ld: /home/gilsun91/bitcoin-0.20/src/./hash.h:199: undefined reference to `sph_keccak512'
/usr/bin/ld: /home/gilsun91/bitcoin-0.20/src/./hash.h:200: undefined reference to `sph_keccak512_close'
/usr/bin/ld: /home/gilsun91/bitcoin-0.20/src/./hash.h:204: undefined reference to `sm3_init'
/usr/bin/ld: /home/gilsun91/bitcoin-0.20/src/./hash.h:205: undefined reference to `sph_sm3'
/usr/bin/ld: /home/gilsun91/bitcoin-0.20/src/./hash.h:206: undefined reference to `sph_sm3_close'
/usr/bin/ld: /home/gilsun91/bitcoin-0.20/src/./hash.h:208: undefined reference to `sph_cubehash512_init'
/usr/bin/ld: /home/gilsun91/bitcoin-0.20/src/./hash.h:209: undefined reference to `sph_cubehash512'
/usr/bin/ld: /home/gilsun91/bitcoin-0.20/src/./hash.h:210: undefined reference to `sph_cubehash512_close'
/usr/bin/ld: /home/gilsun91/bitcoin-0.20/src/./hash.h:212: undefined reference to `sph_shavite512_init'
/usr/bin/ld: /home/gilsun91/bitcoin-0.20/src/./hash.h:213: undefined reference to `sph_shavite512'
/usr/bin/ld: /home/gilsun91/bitcoin-0.20/src/./hash.h:214: undefined reference to `sph_shavite512_close'
/usr/bin/ld: /home/gilsun91/bitcoin-0.20/src/./hash.h:216: undefined reference to `sph_simd512_init'
/usr/bin/ld: /home/gilsun91/bitcoin-0.20/src/./hash.h:217: undefined reference to `sph_simd512'
/usr/bin/ld: /home/gilsun91/bitcoin-0.20/src/./hash.h:218: undefined reference to `sph_simd512_close'
/usr/bin/ld: /home/gilsun91/bitcoin-0.20/src/./hash.h:220: undefined reference to `sph_echo512_init'
/usr/bin/ld: /home/gilsun91/bitcoin-0.20/src/./hash.h:221: undefined reference to `sph_echo512'
/usr/bin/ld: /home/gilsun91/bitcoin-0.20/src/./hash.h:222: undefined reference to `sph_echo512_close'
/usr/bin/ld: /home/gilsun91/bitcoin-0.20/src/./hash.h:224: undefined reference to `sph_hamsi512_init'
/usr/bin/ld: /home/gilsun91/bitcoin-0.20/src/./hash.h:225: undefined reference to `sph_hamsi512'
/usr/bin/ld: /home/gilsun91/bitcoin-0.20/src/./hash.h:226: undefined reference to `sph_hamsi512_close'
/usr/bin/ld: /home/gilsun91/bitcoin-0.20/src/./hash.h:228: undefined reference to `sph_fugue512_init'
/usr/bin/ld: /home/gilsun91/bitcoin-0.20/src/./hash.h:229: undefined reference to `sph_fugue512'
/usr/bin/ld: /home/gilsun91/bitcoin-0.20/src/./hash.h:230: undefined reference to `sph_fugue512_close'
collect2: error: ld returned 1 exit status
make(2): *** (Makefile:7370: bitcoin-tx) Error 1
make(2): *** Waiting for unfinished jobs....
/usr/bin/ld: libbitcoin_consensus.a(libbitcoin_consensus_a-block.o): in function `uint256 HashX13sm3<char*>(char*, char*)':
/home/gilsun91/bitcoin-0.20/src/./hash.h:178: undefined reference to `sph_blake512_init'
/usr/bin/ld: /home/gilsun91/bitcoin-0.20/src/./hash.h:179: undefined reference to `sph_blake512'
/usr/bin/ld: /home/gilsun91/bitcoin-0.20/src/./hash.h:180: undefined reference to `sph_blake512_close'
/usr/bin/ld: /home/gilsun91/bitcoin-0.20/src/./hash.h:182: undefined reference to `sph_bmw512_init'
/usr/bin/ld: /home/gilsun91/bitcoin-0.20/src/./hash.h:183: undefined reference to `sph_bmw512'
/usr/bin/ld: /home/gilsun91/bitcoin-0.20/src/./hash.h:184: undefined reference to `sph_bmw512_close'
/usr/bin/ld: /home/gilsun91/bitcoin-0.20/src/./hash.h:186: undefined reference to `sph_groestl512_init'
/usr/bin/ld: /home/gilsun91/bitcoin-0.20/src/./hash.h:187: undefined reference to `sph_groestl512'
/usr/bin/ld: /home/gilsun91/bitcoin-0.20/src/./hash.h:188: undefined reference to `sph_groestl512_close'
/usr/bin/ld: /home/gilsun91/bitcoin-0.20/src/./hash.h:190: undefined reference to `sph_skein512_init'
/usr/bin/ld: /home/gilsun91/bitcoin-0.20/src/./hash.h:191: undefined reference to `sph_skein512'
/usr/bin/ld: /home/gilsun91/bitcoin-0.20/src/./hash.h:192: undefined reference to `sph_skein512_close'
/usr/bin/ld: /home/gilsun91/bitcoin-0.20/src/./hash.h:194: undefined reference to `sph_jh512_init'
/usr/bin/ld: /home/gilsun91/bitcoin-0.20/src/./hash.h:195: undefined reference to `sph_jh512'
/usr/bin/ld: /home/gilsun91/bitcoin-0.20/src/./hash.h:196: undefined reference to `sph_jh512_close'
/usr/bin/ld: /home/gilsun91/bitcoin-0.20/src/./hash.h:198: undefined reference to `sph_keccak512_init'
/usr/bin/ld: /home/gilsun91/bitcoin-0.20/src/./hash.h:199: undefined reference to `sph_keccak512'
/usr/bin/ld: /home/gilsun91/bitcoin-0.20/src/./hash.h:200: undefined reference to `sph_keccak512_close'
/usr/bin/ld: /home/gilsun91/bitcoin-0.20/src/./hash.h:204: undefined reference to `sm3_init'
/usr/bin/ld: /home/gilsun91/bitcoin-0.20/src/./hash.h:205: undefined reference to `sph_sm3'
/usr/bin/ld: /home/gilsun91/bitcoin-0.20/src/./hash.h:206: undefined reference to `sph_sm3_close'
/usr/bin/ld: /home/gilsun91/bitcoin-0.20/src/./hash.h:208: undefined reference to `sph_cubehash512_init'
/usr/bin/ld: /home/gilsun91/bitcoin-0.20/src/./hash.h:209: undefined reference to `sph_cubehash512'
/usr/bin/ld: /home/gilsun91/bitcoin-0.20/src/./hash.h:210: undefined reference to `sph_cubehash512_close'
/usr/bin/ld: /home/gilsun91/bitcoin-0.20/src/./hash.h:212: undefined reference to `sph_shavite512_init'
/usr/bin/ld: /home/gilsun91/bitcoin-0.20/src/./hash.h:213: undefined reference to `sph_shavite512'
/usr/bin/ld: /home/gilsun91/bitcoin-0.20/src/./hash.h:214: undefined reference to `sph_shavite512_close'
/usr/bin/ld: /home/gilsun91/bitcoin-0.20/src/./hash.h:216: undefined reference to `sph_simd512_init'
/usr/bin/ld: /home/gilsun91/bitcoin-0.20/src/./hash.h:217: undefined reference to `sph_simd512'
/usr/bin/ld: /home/gilsun91/bitcoin-0.20/src/./hash.h:218: undefined reference to `sph_simd512_close'
/usr/bin/ld: /home/gilsun91/bitcoin-0.20/src/./hash.h:220: undefined reference to `sph_echo512_init'
/usr/bin/ld: /home/gilsun91/bitcoin-0.20/src/./hash.h:221: undefined reference to `sph_echo512'
/usr/bin/ld: /home/gilsun91/bitcoin-0.20/src/./hash.h:222: undefined reference to `sph_echo512_close'
/usr/bin/ld: /home/gilsun91/bitcoin-0.20/src/./hash.h:224: undefined reference to `sph_hamsi512_init'
/usr/bin/ld: /home/gilsun91/bitcoin-0.20/src/./hash.h:225: undefined reference to `sph_hamsi512'
/usr/bin/ld: /home/gilsun91/bitcoin-0.20/src/./hash.h:226: undefined reference to `sph_hamsi512_close'
/usr/bin/ld: /home/gilsun91/bitcoin-0.20/src/./hash.h:228: undefined reference to `sph_fugue512_init'
/usr/bin/ld: /home/gilsun91/bitcoin-0.20/src/./hash.h:229: undefined reference to `sph_fugue512'
/usr/bin/ld: /home/gilsun91/bitcoin-0.20/src/./hash.h:230: undefined reference to `sph_fugue512_close'
collect2: error: ld returned 1 exit status
make(2): *** (Makefile:7374: bitcoin-wallet) Error 1
/usr/bin/ld: libbitcoin_consensus.a(libbitcoin_consensus_a-block.o): in function `uint256 HashX13sm3<char*>(char*, char*)':
/home/gilsun91/bitcoin-0.20/src/./hash.h:178: undefined reference to `sph_blake512_init'
/usr/bin/ld: /home/gilsun91/bitcoin-0.20/src/./hash.h:179: undefined reference to `sph_blake512'
/usr/bin/ld: /home/gilsun91/bitcoin-0.20/src/./hash.h:180: undefined reference to `sph_blake512_close'
/usr/bin/ld: /home/gilsun91/bitcoin-0.20/src/./hash.h:182: undefined reference to `sph_bmw512_init'
/usr/bin/ld: /home/gilsun91/bitcoin-0.20/src/./hash.h:183: undefined reference to `sph_bmw512'
/usr/bin/ld: /home/gilsun91/bitcoin-0.20/src/./hash.h:184: undefined reference to `sph_bmw512_close'
/usr/bin/ld: /home/gilsun91/bitcoin-0.20/src/./hash.h:186: undefined reference to `sph_groestl512_init'
/usr/bin/ld: /home/gilsun91/bitcoin-0.20/src/./hash.h:187: undefined reference to `sph_groestl512'
/usr/bin/ld: /home/gilsun91/bitcoin-0.20/src/./hash.h:188: undefined reference to `sph_groestl512_close'
/usr/bin/ld: /home/gilsun91/bitcoin-0.20/src/./hash.h:190: undefined reference to `sph_skein512_init'
/usr/bin/ld: /home/gilsun91/bitcoin-0.20/src/./hash.h:191: undefined reference to `sph_skein512'
/usr/bin/ld: /home/gilsun91/bitcoin-0.20/src/./hash.h:192: undefined reference to `sph_skein512_close'
/usr/bin/ld: /home/gilsun91/bitcoin-0.20/src/./hash.h:194: undefined reference to `sph_jh512_init'
/usr/bin/ld: /home/gilsun91/bitcoin-0.20/src/./hash.h:195: undefined reference to `sph_jh512'
/usr/bin/ld: /home/gilsun91/bitcoin-0.20/src/./hash.h:196: undefined reference to `sph_jh512_close'
/usr/bin/ld: /home/gilsun91/bitcoin-0.20/src/./hash.h:198: undefined reference to `sph_keccak512_init'
/usr/bin/ld: /home/gilsun91/bitcoin-0.20/src/./hash.h:199: undefined reference to `sph_keccak512'
/usr/bin/ld: /home/gilsun91/bitcoin-0.20/src/./hash.h:200: undefined reference to `sph_keccak512_close'
/usr/bin/ld: /home/gilsun91/bitcoin-0.20/src/./hash.h:204: undefined reference to `sm3_init'
/usr/bin/ld: /home/gilsun91/bitcoin-0.20/src/./hash.h:205: undefined reference to `sph_sm3'
/usr/bin/ld: /home/gilsun91/bitcoin-0.20/src/./hash.h:206: undefined reference to `sph_sm3_close'
/usr/bin/ld: /home/gilsun91/bitcoin-0.20/src/./hash.h:208: undefined reference to `sph_cubehash512_init'
/usr/bin/ld: /home/gilsun91/bitcoin-0.20/src/./hash.h:209: undefined reference to `sph_cubehash512'
/usr/bin/ld: /home/gilsun91/bitcoin-0.20/src/./hash.h:210: undefined reference to `sph_cubehash512_close'
/usr/bin/ld: /home/gilsun91/bitcoin-0.20/src/./hash.h:212: undefined reference to `sph_shavite512_init'
/usr/bin/ld: /home/gilsun91/bitcoin-0.20/src/./hash.h:213: undefined reference to `sph_shavite512'
/usr/bin/ld: /home/gilsun91/bitcoin-0.20/src/./hash.h:214: undefined reference to `sph_shavite512_close'
/usr/bin/ld: /home/gilsun91/bitcoin-0.20/src/./hash.h:216: undefined reference to `sph_simd512_init'
/usr/bin/ld: /home/gilsun91/bitcoin-0.20/src/./hash.h:217: undefined reference to `sph_simd512'
/usr/bin/ld: /home/gilsun91/bitcoin-0.20/src/./hash.h:218: undefined reference to `sph_simd512_close'
/usr/bin/ld: /home/gilsun91/bitcoin-0.20/src/./hash.h:220: undefined reference to `sph_echo512_init'
/usr/bin/ld: /home/gilsun91/bitcoin-0.20/src/./hash.h:221: undefined reference to `sph_echo512'
/usr/bin/ld: /home/gilsun91/bitcoin-0.20/src/./hash.h:222: undefined reference to `sph_echo512_close'
/usr/bin/ld: /home/gilsun91/bitcoin-0.20/src/./hash.h:224: undefined reference to `sph_hamsi512_init'
/usr/bin/ld: /home/gilsun91/bitcoin-0.20/src/./hash.h:225: undefined reference to `sph_hamsi512'
/usr/bin/ld: /home/gilsun91/bitcoin-0.20/src/./hash.h:226: undefined reference to `sph_hamsi512_close'
/usr/bin/ld: /home/gilsun91/bitcoin-0.20/src/./hash.h:228: undefined reference to `sph_fugue512_init'
/usr/bin/ld: /home/gilsun91/bitcoin-0.20/src/./hash.h:229: undefined reference to `sph_fugue512'
/usr/bin/ld: /home/gilsun91/bitcoin-0.20/src/./hash.h:230: undefined reference to `sph_fugue512_close'
collect2: error: ld returned 1 exit status
make(2): *** (Makefile:7378: bitcoind) Error 1
/usr/bin/ld: libbitcoin_consensus.a(libbitcoin_consensus_a-block.o): in function `uint256 HashX13sm3<char*>(char*, char*)':
/home/gilsun91/bitcoin-0.20/src/./hash.h:178: undefined reference to `sph_blake512_init'
/usr/bin/ld: /home/gilsun91/bitcoin-0.20/src/./hash.h:179: undefined reference to `sph_blake512'
/usr/bin/ld: /home/gilsun91/bitcoin-0.20/src/./hash.h:180: undefined reference to `sph_blake512_close'
/usr/bin/ld: /home/gilsun91/bitcoin-0.20/src/./hash.h:182: undefined reference to `sph_bmw512_init'
/usr/bin/ld: /home/gilsun91/bitcoin-0.20/src/./hash.h:183: undefined reference to `sph_bmw512'
/usr/bin/ld: /home/gilsun91/bitcoin-0.20/src/./hash.h:184: undefined reference to `sph_bmw512_close'
/usr/bin/ld: /home/gilsun91/bitcoin-0.20/src/./hash.h:186: undefined reference to `sph_groestl512_init'
/usr/bin/ld: /home/gilsun91/bitcoin-0.20/src/./hash.h:187: undefined reference to `sph_groestl512'
/usr/bin/ld: /home/gilsun91/bitcoin-0.20/src/./hash.h:188: undefined reference to `sph_groestl512_close'
/usr/bin/ld: /home/gilsun91/bitcoin-0.20/src/./hash.h:190: undefined reference to `sph_skein512_init'
/usr/bin/ld: /home/gilsun91/bitcoin-0.20/src/./hash.h:191: undefined reference to `sph_skein512'
/usr/bin/ld: /home/gilsun91/bitcoin-0.20/src/./hash.h:192: undefined reference to `sph_skein512_close'
/usr/bin/ld: /home/gilsun91/bitcoin-0.20/src/./hash.h:194: undefined reference to `sph_jh512_init'
/usr/bin/ld: /home/gilsun91/bitcoin-0.20/src/./hash.h:195: undefined reference to `sph_jh512'
/usr/bin/ld: /home/gilsun91/bitcoin-0.20/src/./hash.h:196: undefined reference to `sph_jh512_close'
/usr/bin/ld: /home/gilsun91/bitcoin-0.20/src/./hash.h:198: undefined reference to `sph_keccak512_init'
/usr/bin/ld: /home/gilsun91/bitcoin-0.20/src/./hash.h:199: undefined reference to `sph_keccak512'
/usr/bin/ld: /home/gilsun91/bitcoin-0.20/src/./hash.h:200: undefined reference to `sph_keccak512_close'
/usr/bin/ld: /home/gilsun91/bitcoin-0.20/src/./hash.h:204: undefined reference to `sm3_init'
/usr/bin/ld: /home/gilsun91/bitcoin-0.20/src/./hash.h:205: undefined reference to `sph_sm3'
/usr/bin/ld: /home/gilsun91/bitcoin-0.20/src/./hash.h:206: undefined reference to `sph_sm3_close'
/usr/bin/ld: /home/gilsun91/bitcoin-0.20/src/./hash.h:208: undefined reference to `sph_cubehash512_init'
/usr/bin/ld: /home/gilsun91/bitcoin-0.20/src/./hash.h:209: undefined reference to `sph_cubehash512'
/usr/bin/ld: /home/gilsun91/bitcoin-0.20/src/./hash.h:210: undefined reference to `sph_cubehash512_close'
/usr/bin/ld: /home/gilsun91/bitcoin-0.20/src/./hash.h:212: undefined reference to `sph_shavite512_init'
/usr/bin/ld: /home/gilsun91/bitcoin-0.20/src/./hash.h:213: undefined reference to `sph_shavite512'
/usr/bin/ld: /home/gilsun91/bitcoin-0.20/src/./hash.h:214: undefined reference to `sph_shavite512_close'
/usr/bin/ld: /home/gilsun91/bitcoin-0.20/src/./hash.h:216: undefined reference to `sph_simd512_init'
/usr/bin/ld: /home/gilsun91/bitcoin-0.20/src/./hash.h:217: undefined reference to `sph_simd512'
/usr/bin/ld: /home/gilsun91/bitcoin-0.20/src/./hash.h:218: undefined reference to `sph_simd512_close'
/usr/bin/ld: /home/gilsun91/bitcoin-0.20/src/./hash.h:220: undefined reference to `sph_echo512_init'
/usr/bin/ld: /home/gilsun91/bitcoin-0.20/src/./hash.h:221: undefined reference to `sph_echo512'
/usr/bin/ld: /home/gilsun91/bitcoin-0.20/src/./hash.h:222: undefined reference to `sph_echo512_close'
/usr/bin/ld: /home/gilsun91/bitcoin-0.20/src/./hash.h:224: undefined reference to `sph_hamsi512_init'
/usr/bin/ld: /home/gilsun91/bitcoin-0.20/src/./hash.h:225: undefined reference to `sph_hamsi512'
/usr/bin/ld: /home/gilsun91/bitcoin-0.20/src/./hash.h:226: undefined reference to `sph_hamsi512_close'
/usr/bin/ld: /home/gilsun91/bitcoin-0.20/src/./hash.h:228: undefined reference to `sph_fugue512_init'
/usr/bin/ld: /home/gilsun91/bitcoin-0.20/src/./hash.h:229: undefined reference to `sph_fugue512'
/usr/bin/ld: /home/gilsun91/bitcoin-0.20/src/./hash.h:230: undefined reference to `sph_fugue512_close'

visas – Reference number of invitation before booking a flight to iran

The reference number you’re referring to, is issued by the Iranian Ministry of Foreign Affairs to visa applicants.

It is mandatory to get one prior to being issued a visa, but you do not need one to book a flight, or even to board your flight. The airline generally will not look for it, since they will see in Timatic that you are eligible for a visa on arrival.

It’s not mandatory to have a reference number if you wish to obtain a visa on arrival, but it will make the visa-on-arrival process much faster if you have a reference number.

Note that visas on arrival can only be obtained at the major airports in Iran. You can’t obtain a visa on arrival if you enter via land, and will need a regular visa in this case.

javascript – Cannot make a static reference to the non-static field GrossPay

For the calculation, Net Pay is calculated as the result from Gross Pay minus all deductions (Federal, State, Social Security, and Medicare). The number of hours per week will be used to compute Gross pay, Net pay, and Deductions.
You use the most appropriate data type for each variable.
public class NetPay {

double FEDERAL_TAX_PERCENT = 10.00; 
double STATE_TAX_PERCENT = 4.5;
double SOCIAL_SECURITY_PERCENT = 6.2;
double MEDICARE_PERCENT = 1.45;
double PAY_PER_HOUR = 7.25;

 int HoursPerWeek = 40;
 double GrossPay = PAY_PER_HOUR * HoursPerWeek;


 double Federal = GrossPay * FEDERAL_TAX_PERCENT / 100;
 double State = GrossPay * STATE_TAX_PERCENT / 100;
 double SocialSecurity= GrossPay * SOCIAL_SECURITY_PERCENT / 100;
 double Medicare = GrossPay * MEDICARE_PERCENT / 100;
 
 double NetPay = GrossPay - Federal - State - SocialSecurity - Medicare;
 



public static void main(String() args) {
    
    
    System.out.println("Gross Pay:" + GrossPay); the question is come up here
    System.out.println("Net Pay:");
    System.out.println("");
    System.out.println("");
    System.out.println("Deductions");
    System.out.println("Federal:");
    System.out.println("State:");
    System.out.println("Social Security:");
    System.out.println("Medicare:");

    
    
}

}

reference request – Octonionic Reflection Groups, Classification of

I know that there exist classification theorems for real, complex, and quaternionic, reflection groups.

There are presentations for the real reflection groups, as well as further presentations for the complex ones. The ones for the quaternions are less familiar, and, from what I can see, their Dynkin diagrams and Weyl symbols aren’t standardised like the real ones. there are also the three infinite families (discussed by Broué, Malle, and Rouquier in their paper on complex reflection groups).

I did try to see if anyone had attempted to classify the octonionic reflection groups. But as far as I could tell, no one has attempted to derive the complete set. If this has already been done, refer me to an open access source, if possible. If not then this’ll probably be an open problem, but I am not experienced enough in group theory to attempt to begin.

Here is the paper on complex reflection groups:
https://www.math.ucla.edu/~rouquier/papers/banff.pdf

Any reference on solving functional and differenial equations involving power towers of a function?

I am curious if this is covered in any textbooks or papers. I am interested in finding out how to solve functional and differential (even pde) equations involving power towers in them. For example if tow(f(x),n)= g(x) where tow meant a diagonal power tower of f with n determining it’s height. Also, can this be solved if some of the f’s in the tower (not necessarily all of them) were derivatives , or even partial derivatives in a multivariable case? I’m also interested in what happens if n goes to infinity. Thanks.

c# – Determining the object that caused a null reference exception?

Frequently in applications we encounter situations that could throw a NullReferenceException; for example, assuming the following method’s argument is a user defined reference type, accessing the reference without first checking if it is null, can result in a NullReferenceException:

public void ProcessObject(MyObject obj) { ... }

The common way to ensure that these exceptions don’t occur is to check the reference prior to accessing it:

public void ProcessObject(MyObject obj) {
    if (obj != null) {
        ...
    }
}

This is a relatively straight forward process, and allows us to perform some kind of logging (if we desire) if the reference is null. However, let’s say that MyObject contains sub objects that we must utilize:

public sealed class MyA { public int X { get; set; } }
public sealed class MyB { ... }
public sealed class MyC { ... }
public sealed class MyD { ... }
public sealed class MyObject {
    public MyA A { get; set; }
    public MyB B { get; set; }
    ...
}

Ordinarily, I’d side with the idea that the handling in this situation is the exact same:

if (obj?.A != null)
    ...

However, let’s assume that MyObject is a rather large data model, defined by an external source. Let’s also assume that I need to access many of these sub-objects in a way that makes it incredibly tedious to check each individually:

if (obj?.A != null) {
    values.Add(obj.A.X)
    values.Add(obj.A.Y)
}
if (obj?.B != null)
    values.Add(obj.B.Z)
...

Instead, perhaps it’s more convenient to create a last accessed object, assuming that if something fails there’s no need to continue:

dynamic lastAccessedObject { Name = nameof(obj), Value = JsonConvert.SerializeObject(obj) };
try {
    values.Add(obj.A.X);
    values.Add(obj.A.Y);
    values.Add(obj.B.Z);
} catch (Exception e) when (e is NullReferenceException) {
    LogMessage($"An attempt was made to process null data; the last accessed object is: {JsonConvert.SerializeObject(lastAccessedObject)}");
}

This is a very simple example, but I believe it would be useful in a scenario where there are multiple top level objects and many sub-objects are utilized during the process. If the top level object isn’t null, and we encounter an exception with one of its sub-objects, then the JSON data would reflect the sub-object as null. As such, from a readability point of view, I believe this method to be more concise, and as such, more legible than a method with many nested logical evaluations checking for null and logging what was null.


With that in mind, I’d like a second opinion on this idea. To prevent an X/Y problem, the goal is to simply record what object causes a null reference exception to be thrown, since the call stack doesn’t always give us this information.

Will recording the last accessed object potentially confuse the purpose of the method? Are there any gotchas from a performance or runtime perspective that should be considered? What about from a peer review perspective? Does this method cause you to stop and think too much compared to the typical logical evaluations? Does it make sense to do this only if the situation dictates it, or not at all? These are just a few of my questions; feel free to answer them, but my primary question is simply:

Is recording the top level object as JSON data less legible than the typical process of logical evaluations?

nodes – Custom display in saved Entity reference in Widget field

We have an entity reference field widget. Based on a view where you can enter the code of a product to get to the product reference.

The widget shows the 2 fields (code) – (Title) when we type in the widget.

But after saving, only the title and the Node ID is shown. Title (nodeID)

How can I override what is displayed in the entity reference field to include my product CODE in prefix?
(code) – (Title) (nodeID)

We need this as we reference by code AND name in our industry.